- springboot如何使用log4j2進行日誌管理,springboot應用默認的日誌記錄組件是logback.
- 爲什麼使用log4j2,其根本原因在於log4j2使用了LMAX, 一個無鎖的線程間通信庫代替了, 併發性能大大提升.
- 優點:
- 丟數據這種情況少,可以用來做審計功能。而且自身內部報的exception會被發現,但是logback和log4j不會。
- log4j2使用了disruptor技術,在多線程環境下,性能高於logback等10倍以上。
- (garbage free)之前的版本會產生非常多的臨時對象,會造成GC頻繁,log4j2則在這方面上做了優化,減少產生臨時對象。儘可能少的GC
- 利用插件系統,使得擴展新的appender,filter,layout等變得容易.
- 因爲插件系統的簡單性,所以在配置的時候,可以不用具體指定所要處理的類型。class
- Java 8 lambda support for lazy logging
- Support for Message objects
- 對filter的功能支持的更強大
- 系統日誌(Syslog)協議supports both TCP and UDP
- 利用jdk1.5併發的特性,減少了死鎖的發生。
- Socket LogEvent SerializedLayout
- 支持kafka queue
- 優點:
- pom:
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- 排除springboot的默認logback日誌配置 --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> <!-- 下面兩個看自己的項目 --> <exclusion> <artifactId>logback-core</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> </exclusions> </dependency> <!-- 導入log4j2依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
-
這樣啓動的時候,就不會報log衝突了.
-
-
log4j2-spring.xml
-
在src/main/resources目錄下新建一個log4j2.xml文件。裏面寫log4j2的自定義配置
-
如果使用默認的名字就不用再配置文件中指定了.
- 默認名:
- 不然就要在application.yml或者application.properties添加
-
yml logging: config: classpath:logback-spring-dev.xml properties: logging.config=classpath:logback-spring-dev.xml
-
- 默認名:
-
- 爲什麼使用log4j2,其根本原因在於log4j2使用了LMAX, 一個無鎖的線程間通信庫代替了, 併發性能大大提升.
SpringBoot使用log4j2進行日誌管理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.