[英]Merging two log4j.properties files
我有两个类和两个log4j.properties文件:每个类一个文件。 一切正常。 现在,我想将两个属性文件合并为一个。 但是我仍然希望每个类都有自己的日志文件。 我怎么做? 我做了以下操作,但是它不起作用:类Abc.java可以很好地记录日志,但是Xyz.java不再记录到它自己的文件中。 请注意,Xyz.java获取动态日志文件名。
log4j.appender.CONSOLE=org.apache. log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache. log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c{1} - %m%n
log4j.rootLogger=INFO, CONSOLE
log4j.appender.ABC_ERR_LOG=org.apache. log4j.RollingFileAppender
log4j.appender.ABC_ERR_LOG.File=/opt/mysite/var/log/allhere.error.log
log4j.appender.ABC_ERR_LOG.MaxFileSize=4MB
log4j.appender.ABC_ERR_LOG.MaxBackupIndex=3
log4j.appender.ABC_ERR_LOG.layout=org.apache. log4j.PatternLayout
log4j.appender.ABC_ERR_LOG.layout.ConversionPattern=%d %-5p %c{1} - %m%n
log4j.appender.ABC_ERR_LOG.Threshold = WARN
log4j.appender.ABC_LOG=org.apache. log4j.RollingFileAppender
log4j.appender.ABC_LOG.File=/opt/mysite/var/log/allhere.log
log4j.appender.ABC_LOG.MaxFileSize=8MB
log4j.appender.ABC_LOG.MaxBackupIndex=3
log4j.appender.ABC_LOG.layout=org.apache. log4j.PatternLayout
log4j.appender.ABC_LOG.layout.ConversionPattern=%d %-5p %c{1} - %m%n
log4j.appender.XYZ_LOG=org.apache. log4j.RollingFileAppender
log4j.appender.XYZ_LOG.File=/opt/mysite/var/log/job-${logfilename}.log
log4j.appender.XYZ_LOG.MaxFileSize=8MB
log4j.appender.XYZ_LOG.MaxBackupIndex=3
log4j.appender.XYZ_LOG.layout=org.apache. log4j.PatternLayout
log4j.appender.XYZ_LOG.layout.ConversionPattern=%d %-5p %c{1} - %m%n
log4j.logger.com.mysite=DEBUG, ABC_LOG, ABC_ERR_LOG, XYZ_LOG
您的两个班级都在同一包中?
如果没有,您可能需要记录:
log4j.logger.com.mysite.packageAbc=DEBUG, ABC_LOG, ABC_ERR_LOG
log4j.logger.com.mysite.packageXyz=DEBUG, XYZ_LOG
否则,您可以像这样动态设置日志文件:
public final void initParams(final String logFileName,
final Layout logLayout, final boolean origin, final Level level) {
FileAppender appender =
(FileAppender) logger.getParent().getAppender(DEFAULT_APPENDER_NAME);
if (appender != null && !logFileName.equalsIgnoreCase(appender.getFile())) {
appender.setFile(logFileName);
appender.setThreshold(level);
appender.setLayout(logLayout);
appender.activateOptions();
}
}
重要的是
appender.activateOptions();
以便log4j重新加载其配置
原来我的属性文件是正确的。 我的文件系统出了点问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.