使用2个记录器记录到2个日志文件是复制日志(使用log4j)



我正在尝试使用以下配置使用log4j创建2个日志文件:

log4j.rootLogger=debug,stdout,logfile
#debug info warn error fatal 
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache=FATAL,logfile
# ConsoleAppender properties
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.Threshold=debug
log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n
#%-5p [%t]: %m%n
# LogFileAppender properties
log4j.appender.logfile=com.xx.util.SizeRollingFileAppender
log4j.appender.logfile.File=log.log
log4j.appender.logfile.MaxFileSize=50240KB
log4j.appender.logfile.BackupsDirectory=log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n
log4j.appedner.logfile.Threshold=error

# Log1FileAppender properties
log4j.appender.log1=com.xx.util.SizeRollingFileAppender
log4j.appender.log1.File=log1.log
log4j.appender.log1.MaxFileSize=5120KB
log4j.appender.log1.BackupsDirectory=log
log4j.appender.log1.layout=org.apache.log4j.PatternLayout
log4j.appender.log1.layout.ConversionPattern=%d %5p %c{1} :%L - %m%n

(xx代表我正在进行的项目)-

这里是Java代码:

public class TestLog4j {
/**
 * @param args
 */
private static org.apache.log4j.Logger log              = org.apache.log4j.Logger.getLogger(TestLog4j.class);
private static org.apache.log4j.Logger log1= org.apache.log4j.Logger.getLogger("log1");
public static void main(String[] args) {
    // TODO Auto-generated method stub
    org.apache.log4j.PropertyConfigurator.configure("src/com/test/log4j.properties");
    log.error("Error Test Log");
    log1.info("Test Log1");
}
}

我的问题是,我想写两个不同的文件,一个用于log,一个为log1。我从这段代码中得到的只是一个文件,其中两个日志都在同一个文件中。

我做错了什么?

简短回答:

添加:

log4j.logger.log1=<yourLogLevel>,log1

到您的log4j.properties。

注意:

每个已启用的对log1(日志级别>=yourLogLevel)的日志请求都将同时转到stdoutlogfile,除非您关闭appender additivity!

最新更新