最近给项目升级Log4j2,遇到了不少问题,进行一下总结。
1. 基础知识
configuration标签(<configuration status="debug" monitorInterval="30">), status设置Log4j2启动和加载配置文件时的打印信息,通过该设置可以看到log4j2本身的日志信息;monitorInterval是用来设置配置文件的动态加载时间的,单位是秒,monitorInterval="30"表示每30秒配置文件会动态加载一次。在程序运行过程中,如果修改配置文件,程序会随之改变。
2. 运行中发现配置的日志没起作用,查看代码发现被rocketmq的log4j2配置给覆盖了,通过查看mq代码发现rocketmq默认加载自己的日志文件,通过修改tomcat启动程序设置参数rocketmq.client.log.loadconfig为false即可
JAVA_OPTS='-Xms512m -Xmx2048m -Xss1024K -XX:MaxPermSize=512m -Drocketmq.client.log.loadconfig=false'