Log4j配置多个记录器

时间:2013-12-03 13:22:18

标签: log4j

我在服务器和服务器中部署的应用程序中有一个log4j.properties文件。要求是为应用程序创建单独的记录器 我在我的应用程序中定义了这个

# Root logger option
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/opt/ibm/WebSphere/AppServer/profiles/MDMServer/logs/damcoLoging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

   #logging for jbpm
log4j.logger.jbpmLogger=INFO, jbpmLogger
log4j.appender.jbpmLogger=org.apache.log4j.RollingFileAppender
log4j.appender.jbpmLogger.maxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.jbpmLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.jbpmLogger.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.jbpmLogger.File=/opt/ibm/WebSphere/AppServer/profiles/MDMServer/logs/jbpmLogging.log
log4j.additivity.jbpmLogger=false

在我的java类中,我已经为辅助记录器

完成了这个
 Logger logger=Logger.getLogger("jbpmLogger");

现在正在生成日志。但是对于辅助记录器我也要设置类名。所以我可以知道日志生成的是哪个类。 目前,辅助记录器的日志看起来像这样

INFO  jbpmLogger:8 - Hi

是否也可以设置班级名称?

1 个答案:

答案 0 :(得分:0)

您可以使用%C将类名添加到输出Pattern,尽管文档警告说这很慢。这是你想要的吗?

或者由于一个getLogger()方法接受一个String,如果你愿意,你可以连接类和你的“jbpmLogger”。由于命名是分层的,因此仍然只在配置文件中使用单个记录器。例如

Logger logger = getLogger("jbpmLogger." + this.getClass().getName());