處理Log4j2不能打印行號的問題(AsyncLogger)
Log4j2不能打印行號問題(AsyncLogger)
背景
%d{yyyy-MM-dd HH:mm:ss,SSS} %level [%t] %logger{36}(%F:%L) - %m%n
日志的輸出格式已經(jīng)指定了文件名、行號顯示,可是打印出來卻是空的,為什么?答案在這里:
解決方案
pom.xml
<dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.3.11</version> </dependency>
log4j2.xml
<AsyncLogger name="com.domain.app.web" includeLocation="true"> <AppenderRef ref="File" /> </AsyncLogger>
注意
includeLocation
:設置成true,否則指定了行號也顯示不出來;disruptor
:這個包需要單獨引入;additivity
:設置成false,否則會重復;
附完整配置節(jié)點
<AsyncLogger name="com.domain.app.web" includeLocation="true" level="debug" additivity="false"> <AppenderRef ref="File" /> </AsyncLogger>
<appender name="STD" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) [%boldYellow(%thread)] %boldGreen(%logger)(%F:%L\): %msg%n</pattern> </encoder> </appender>
Log4j2異步日志中打印方法名和行號信息
解決方案
異步logger,還需要在pom.xml中添加disruptor的依賴;
includeLocation結合異步logger使用,當其設置為true時,才會顯示具體的行號,以及日志所在的類名;
如果設置為false,哪怕<Pattern>設置了輸出行號也不會顯示出來;
pom配置
<dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.3.6</version> </dependency>
屬性配置
設置 AsyncRoot 的 includeLocation 屬性為 true;
xml 格式示例:
<AsyncRoot level="info" includeLocation="true"> <AppenderRef ref="File"/> </AsyncRoot>
yaml 格式示例:
Loggers: AsyncRoot: level: info includeLocation: true AppenderRef: - ref: console - ref: running_log
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 代碼實踐
這篇文章主要介紹了Spring Cloud Feign 自定義配置(重試、攔截與錯誤碼處理) 實踐,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08Java Swing組件單選框JRadioButton用法示例
這篇文章主要介紹了Java Swing組件單選框JRadioButton用法,結合具體實例形式分析了Swing單選框JRadioButton的使用方法及相關操作注意事項,需要的朋友可以參考下2017-11-11SpringBoot打印系統(tǒng)執(zhí)行的sql語句及日志配置指南
這篇文章主要給大家介紹了關于SpringBoot打印系統(tǒng)執(zhí)行的sql語句及日志配置的相關資料,在Java SpringBoot項目中如果使用了Mybatis框架,默認情況下執(zhí)行的所有SQL操作都不會打印日志,需要的朋友可以參考下2023-10-10Springboot中實現(xiàn)接口冪等性的4種方案小結
本文主要介紹了Springboot中實現(xiàn)接口冪等性,包含數(shù)據(jù)庫的冪等,數(shù)據(jù)庫的冪等,Redis的冪等性和Token + 時間戳的冪等性,具有一定的參考價值,感興趣的可以了解一下2024-03-03Java使用Jsoup解析html網(wǎng)頁的實現(xiàn)步驟
Jsoup是一個用于解析HTML文檔的Java庫,本文主要介紹了Java使用Jsoup解析html網(wǎng)頁的實現(xiàn)步驟,可以提取文本、鏈接、圖片等,具有一定的參考價值,感興趣的可以了解一下2024-02-02