添加多个日志文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加多个日志文件相关的知识,希望对你有一定的参考价值。
我想使用默认记录器以及只记录我定义的记录器的特定记录器。我通过引用另一个SO question得到以下内容。
例如:
- log.log - 包括所有日志
- 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记录器中以仅记录它的消息。为记录器和appender提供不同的名称,有助于理解日志属性文件。
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
以上是关于添加多个日志文件的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情