package com.eucalyptus.records; import javax.persistence.Column; import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import javax.persistence.PersistenceContext; import javax.persistence.Table; import org.apache.log4j.Logger; import com.eucalyptus.system.LogLevels; @Entity @PersistenceContext( name = "eucalyptus_records" ) @Table( name = "records_logs" ) @DiscriminatorValue( value = "base" ) public class LogFileRecord extends BaseRecord { private static Logger LOG = Logger.getLogger( EventRecord.class ); @Column( name = "record_caller" ) private String caller; public LogFileRecord( ) { super( ); } public LogFileRecord( EventClass eventClass, EventType type, Class creator, StackTraceElement callerStack, String userId, String correlationId, String other ) { super( type, eventClass, creator, callerStack, userId, correlationId, other ); if ( LogLevels.DEBUG ) { if ( callerStack != null && callerStack.getFileName( ) != null ) { this.caller = String.format( "%s.%s.%s", callerStack.getFileName( ).replaceAll( "\\.\\w*\\b", "" ), callerStack.getMethodName( ), callerStack.getLineNumber( ) ); } else { this.caller = "unknown"; } } } public String getCaller( ) { return this.caller; } @Override public String toString( ) { return this.caller != null ? super.toString( ) + ":" + this.caller : super.toString( ); } }