Log4j2 日志按级别输出到不同文件
在生产环境中,可以按日志信息级别,输出到不同的文件中,如生成 info.log,warn.log,error.log 等;也可以按照自定义的功能方式进行分类。比如接口API调用日志,定时任务日志等等。
这样的功能可以通过在 log4j2.xml 中配置Filter来实现;
示例代码(一)
log4j2.xml
user/logs
fileName="${LOG_HOME}/info/info.log"
filePattern="${LOG_HOME}/info-%d{yyyy-MM-dd}-%i.log">
fileName="${LOG_HOME}/error/error.log"
filePattern="${LOG_HOME}/error-%d{yyyy-MM-dd}-%i.log">
fileName="${LOG_HOME}/fatal/fatal.log"
filePattern="${LOG_HOME}/fatal-%d{yyyy-MM-dd}-%i.log">
示例二
一般项目中其他jar包引用的是log4j.properties文件,比如tomcat启动时候等一些日志,所以可以配置 log4j2.xml 和 log4j.properties 两个文件共存,这样所有的日志都能记录下来了,我习惯于 log4j2.xml 按照功能,类别拆分,log4j.properties只输出一些控制台打印
log4j.rootLogger=info, stdout
# Console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%t] %d{yyyy-MM-dd HH:mm:ss,SSS} [%p]:%l - %m%n