Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 合并两个log4j.properties文件_Java_Properties_Log4j - Fatal编程技术网

Java 合并两个log4j.properties文件

Java 合并两个log4j.properties文件,java,properties,log4j,Java,Properties,Log4j,我有两个类和两个log4j.properties文件:每个类一个文件。一切正常。现在我想将两个属性文件合并为一个。但我仍然希望每个类都有自己的日志文件。我该怎么做?我做了以下操作,但它不起作用:类Abc.java可以很好地记录日志,但是Xyz.java不再记录到自己的文件。请注意,Xyz.java获取动态日志文件名 log4j.appender.CONSOLE=org.apache. log4j.ConsoleAppender log4j.appender.CONSOLE.layou

我有两个类和两个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重新加载它的配置

结果证明我的属性文件是正确的。我的文件系统出了点问题