我在类中实例化一个log4j对象,该类继承了父类的大部分方法和属性。现在我只从子类获取日志消息。如何在超类和子类中输出日志消息?
编辑:我记录的方式是我在子类和超类中都有一个实例变量,所以看起来如下所示:public class SuperClass {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(SuperClass.class);
/* Rest of code goes here */
} // end SuperClass
对于子类也一样。
我的log4j配置:
## gps log4j.rootLogger==ERROR, clientLog, catissuecoreclientLog
log4j.rootLogger==DEBUG, clientLog, catissuecoreclientLog
### direct messages to file hibernate.log ###
log4j.appender.clientLog=org.apache.log4j.FileAppender
log4j.appender.clientLog.File=./log/client.log
log4j.appender.clientLog.layout=org.apache.log4j.PatternLayout
log4j.appender.clientLog.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.catissuecoreclientLog=org.apache.log4j.FileAppender
log4j.appender.catissuecoreclientLog.File=./log/catissuecoreclient.log
log4j.appender.catissuecoreclientLog.layout=org.apache.log4j.PatternLayout
log4j.appender.catissuecoreclientLog.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%n
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
#log4j.rootLogger=warn, stdout
#log4j.rootLogger=warn, file
#log4j.logger.org.hibernate=info
### log just the SQL
#log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug
### log cache activity ###
#log4j.logger.org.hibernate.cache=debug
### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
答案 0 :(得分:1)
您还需要在超类中显示记录器。
通常,设置是在每个类中创建一个logger静态变量,以允许每个类具有不同的日志记录级别。 e.g。
private static final Logger LOG = Logger.getLogger( ClassName.class.getName() );
您输入班级名称而不是ClassName
答案 1 :(得分:1)
嗯......通过实际记录它们?
您需要从任何要记录消息的类的方法调用log4j的日志记录方法(debug()
,info()
,error()
等...)。然后,您可以(在log4j.properties
中)配置哪些消息可见/已记录/转到哪个日志文件/等等...每个类级别(如果您这样选择)。