处理Log4j2不能打印行号的问题(AsyncLogger)

网友投稿 972 2022-11-12

处理Log4j2不能打印行号的问题(AsyncLogger)

处理Log4j2不能打印行号的问题(AsyncLogger)

目录Log4j2不能打印行号问题(AsyncLogger)背景解决方案注意附完整配置节点Log4j2异步日志中打印方法名和行号信息解决方案pom配置属性配置

Log4j2不能打印行号问题(AsyncLogger)

背景

%d{yyyy-MM-dd HH:mm:ss,SSS} %level [%t] %logger{36}(%F:%L) - %m%n

日志的输出格式已经指定了文件名、行号显示,可是打印出来却是空的,为什么?答案在这里:

解决方案

pom.xml

com.lmax

disruptor

3.3.11

log4j2.xml

注意

includeLocation:设置成true,否则指定了行号也显示不出来;

disruptor:这个包需要单独引入;

additivity:设置成false,否则会重复;

附完整配置节点

%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) [%boldYellow(%thread)] %boldGreen(%logger)(%F:%L\): %msg%n

Log4j2异步日志中打印方法名和行号信息

解决方案

异步logger,还需要在pom.xml中添加disruptor的依赖;

includeLocation结合异步logger使用,当其设置为true时,才会显示具体的行号,以及日志所在的类名;

如果设置为false,哪怕设置了输出行号也不会显示出来;

pom配置

com.lmax

disruptor

3.3.6

属性配置

设置 Asyncroot 的 includeLocation 属性为 true;

xml 格式示例

yaml 格式示例:

Loggers:

AsyncRoot:

level: info

includeLocation: true

AppenderRef:

- ref: console

- ref: running_log

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C++核心准则C.67:多态类应该抑制拷贝
下一篇:聊聊情绪管理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~