java - 添加多个日志文件

标签 java log4j

我想使用默认记录器以及仅记录我定义的记录器的特定记录器。我通过引用另一个 SO question 得到以下内容.

例如:

  1. log.log - 包括所有日志
  2. foo.log - 包括定义的日志 foo.info(..)

我设置了以下属性

log4j.rootLogger = INFO, FOO, file

log4j.logger.FOO=DEBUG, FOO 
log4j.logger.file=DEBUG, file 

log4j.additivity.FOO=false 
log4j.additivity.file=false 

log4j.appender.FOO = org.apache.log4j.RollingFileAppender 
log4j.appender.FOO.layout = org.apache.log4j.PatternLayout
log4j.appender.FOO.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.FOO.File = foo.log

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log.log
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

我的代码包括以下内容:

private static final Logger foo = Logger.getLogger("FOO");

private static final Logger log = Logger.getLogger(App.class); //NOTE I can't change this

public static void main(String[] args) { 
    log.info("info");
    foo.info("fooo");
}

但这与我想要的相反

log.log 只有“信息”,而 foo.log 两者都有。

请注意,我无法更改默认的 log 实例化代码段。

最佳答案

像下面这样更改您的属性文件。 fileAppender 将添加到 FOO 记录器和根记录器以记录所有消息。 FOOAppender 只会被添加到 FOO logger 以仅记录它的消息。给记录器和附加器不同的名称,有助于理解日志属性文件。

log4j.rootLogger = INFO,fileAppender
log4j.logger.FOO=DEBUG,FOOAppender,fileAppender
log4j.additivity.FOO=false 

log4j.appender.FOOAppender = org.apache.log4j.RollingFileAppender 
log4j.appender.FOOAppender.layout = org.apache.log4j.PatternLayout
log4j.appender.FOOAppender.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.FOOAppender.File = foo.log

log4j.appender.fileAppender=org.apache.log4j.FileAppender
log4j.appender.fileAppender.File=log.log
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

关于java - 添加多个日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49132080/

相关文章:

java.lang.ClassNotFoundException : org. apache.log4j.Level 异常

hadoop - log4j.properties 过滤掉 Spark 和 YARN 日志

java - Log4j 1 和 2 - 来自两个 Log4J 版本的自定义附加程序同时写入同一文件

java - 如何使 log4j error() 调用在 jUnit 测试中抛出异常?

java - SpringBoot @WebMvcTest, Autowiring RestTemplateBuilder

java - 如何使用 spring 集成通过 http header 动态传递值

java - 如何在 Java 中移动日历?

Java - 找不到 Logger 类

java - 文件写入jar中的资源文件夹中

java字符串匹配问题