SpringBoot學習--09配置log4j2日誌詳解(下)--升級
上篇我們完成了log4j2的日誌配置,但是log4j2最好的地方就是非同步日誌模式,所以在這裡我們就要進行升級改造.
非同步改造(混合非同步輸出:控制檯同步輸出,儲存日誌非同步輸出)
在pom.xml中匯入log4j2日誌的非同步依賴
<!-- log4j2非同步依賴包 --> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.2</version> </dependency>
修改xml中的配置:
# 原有配置<Loggers> <!--過濾掉spring和mybatis的一些無用的DEBUG資訊--> <logger name="org.springframework" level="INFO" /> <logger name="org.mybatis" level="INFO" /> <!-- 配置日誌的根節點 --> <!-- 定義logger,只有定義了logger並引入了appender,appender才會生效 --> <root level="${OUT_LOG_LEVEL}"> <appender-ref ref="console_out_appender" /> <appender-ref ref="console_err_appender" /> <appender-ref ref="trace_appender" /> <appender-ref ref="debug_appender" /> <appender-ref ref="info_appender" /> <appender-ref ref="warn_appender" /> <appender-ref ref="error_appender" /> </root> </Loggers>
修改後的配置:
<Loggers> <!--過濾掉spring和mybatis的一些無用的DEBUG資訊--> <logger name="org.springframework" level="INFO" /> <logger name="org.mybatis" level="INFO" /> <!-- 配置日誌的根節點 --> <!-- 定義logger,只有定義了logger並引入了appender,appender才會生效 --> <!-- 列印日誌同步輸出 --> <root level="${OUT_LOG_LEVEL}" includeLocation="true"> <appender-ref ref="console_out_appender" /> <appender-ref ref="console_err_appender" /> </root> <!-- 儲存日誌非同步輸出 --> <AsyncLogger level="${OUT_LOG_LEVEL}" includeLocation="true"> <appender-ref ref="trace_appender" /> <appender-ref ref="debug_appender" /> <appender-ref ref="info_appender" /> <appender-ref ref="warn_appender" /> <appender-ref ref="error_appender" /> </AsyncLogger> </Loggers>
很多時候專案中的日誌系統沒有匯入log4j2的依賴包,使用介面會出現錯誤.現在將日誌系統重構成基於Slf4j和log4j2的日誌系統,使用slf4j可以很好的保證我們的日誌系統具有良好的相容性,相容當前常見幾種日誌系統,不會出現異常.
在pom.xml匯入slf4j和log4j2的橋接包,
<!-- --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> </dependency> <!-- --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency>
使用時將log匯入包替換,如下所示:
#替換前import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;private static final Logger log = LogManager.getLogger(SysDepartmentController.class);
#替換後import org.slf4j.Logger;import org.slf4j.LoggerFactory;private static final Logger log = LoggerFactory.getLogger(SysDepartmentController.class);
其輸出效果是一樣的,但是專案作為介面的時候不會因為沒有匯入log4j2的依賴包而出現異常.
作者:淵默十三
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2818369/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Nginx日誌配置詳解Nginx
- springboot學習日誌(二)– thymeleaf學習Spring Boot
- SpringBoot 整合 Log4j2 日誌框架Spring Boot框架
- SpringBoot整合Log4j2日誌框架Spring Boot框架
- springboot超級詳細的日誌配置(基於logback)Spring Boot
- SpringBoot 實現整合log4j2日誌Spring Boot
- log4j日誌配置詳解
- 在java下使用log4j2記錄日誌Java
- webpack 4.0 學習日誌(一)——配置方法以及錯誤解決Web
- 學習日誌
- SpringBoot詳解(四)-優雅地處理日誌Spring Boot
- Apache日誌詳解Apache
- SpringBoot多環境日誌配置Spring Boot
- Logback詳細整理,基於springboot的日誌配置Spring Boot
- Spring Boot 學習筆記(5):日誌配置Spring Boot筆記
- 日誌框架學習框架
- JVM GC 日誌詳解JVMGC
- SpringBoot—整合log4j2入門和log4j2.xml配置詳解Spring BootXML
- 詳解MySQL慢日誌(下)選項引數篇MySql
- Git 學習日誌1Git
- 11.3 學習日誌
- SpringBoot 實戰 (七) | 預設日誌配置Spring Boot
- Log4j2 + Maven的配置檔案示例詳解Maven
- 日誌-log4j2基於AsyncAppender的非同步日誌列印APP非同步
- Python 日誌功能詳解Python
- log4j2分層輸出日誌
- 使用Log4j2輸出日誌演示
- nginx伺服器access_log日誌分析及配置詳解Nginx伺服器
- 日誌-log4j2基於AsyncLogger的非同步日誌列印非同步
- 日誌配置
- log4j日誌級別以及配置
- 小白學習如何打日誌
- Vipper日誌庫的學習
- 蘇嵌7.9學習日誌
- 【Mysql 學習】Mysql 日誌(一)MySql
- springboot logback配置mybatis 日誌以及多環境配置Spring BootMyBatis
- ELK日誌分析系統詳解
- mysql的日誌檔案詳解MySql