ons-client无法使用log4j2输出日志

作者:じ☆ve宝贝

发布时间:2018-12-05T10:22:23

项目中使用了阿里云的MQ,在使用中发现如果使用的是log4j2的话日志框架无法兼容。

阿里云ons日志配置官网截图

官网明确说明1.7.8一下不支持log4j2,但是1.7.8日志怎么使用呢?官网没有明确说明。追了日志源码才发现,代码中会通过System.getProperty("rocketmq.client.logUseSlf4j", "false"); 来判断是否启用sl4j作为日志数据框架,默认是false,所以即便用了也无法输出日志。在项目启动的参数中增加通过指定 -Drocketmq.client.logUseSlf4j=true 来启动 或者 使用System.setProperty("rocketmq.client.logUseSlf4j", "true");

例如jar方式启动:

java -Drocketmq.client.logUseSlf4j=true -cp /lib/* ${MAIN_CLASS} &

tomcat(windows)方式启动:

tomat(Linux)方式启动:

ons-client-1.7.0-Final怎么使用log4j2

在log4j同级目录复制一个名为log4j2_rocketmq_client.xml的log4j2的xml。然后配备sl4j插件使用,项目初期使用log4j2.xml启动,然后启动mq后会使用log4j2_rocketmq_client.xml进行日志输出。