同一模块中日志输出到不同文件
需求:项目的同一个子模块下,已经配置过日志输出,现在加入新的功能后,想把新功能的日志输出到不同的日志文件中。
操作:
- rootLogger中申明多个输出对象,比如这里的stdout, es, other
log4j.rootLogger=info, stdout, es, other
- 分别为每个输出对象进行设置
log4j.appender.es=
log4j.appender.other=
- 然后这样使用:
private static final Logger ES = LoggerFactory.getLogger("stdout");
private static final Logger OTHER = LoggerFactory.getLogger("stdout");
public static void main(String[] args) {
ES.warn("ES");
OTHER.warn("OTHER");
}
- 完整配置
log4j.rootLogger=info, stdout, es, other
# stdout--------log4j:ERROR Could not find value for key log4j.appender.stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p %c %-5l %m%n
# es
log4j.appender.es=org.apache.log4j.DailyRollingFileAppender
log4j.appender.es.File=/Users/wanghai/IdeaProjects/wanghai/ipbdLab_/logs/es.log
log4j.appender.es.Encoding=UTF-8
# 然后当这一天过去的时候,生成一个新的blog时,才会给原来的日志加上日期格式后缀
log4j.appender.es.DatePattern='.'yyyy-MM-dd
log4j.appender.es.layout=org.apache.log4j.PatternLayout
log4j.appender.es.layout.ConversionPattern=%d - %m%n
log4j.appender.es.Append=true
log4j.appender.es.Threshold=info
# 不继承父输出
log4j.additivity.es=false