gpt4 book ai didi

java - 将 log4j 与继承的类一起使用

转载 作者:行者123 更新时间:2023-11-30 05:15:47 25 4
gpt4 key购买 nike

我正在类中实例化一个 log4j 对象,该类继承了父类的大部分方法和属性。现在我只从子类获取日志消息。如何在父类(super class)和子类中输出日志消息?

编辑:我进行日志记录的方式是在子类和父类(super class)中都有一个实例变量,因此它看起来如下所示:

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

最佳答案

您还需要使记录器在父类(super class)中可见。

通常设置是在每个类中创建一个记录器静态变量,以允许每个类具有不同的日志记录级别。例如

private static final Logger LOG = Logger.getLogger( ClassName.class.getName() );

在其中输入类(class)名称而不是 ClassName

关于java - 将 log4j 与继承的类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com