SpringBoot使用log4j2進行日誌管理

  • 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章