[JAVA] log4j2框架參數檔設定
前情提要
不管是使用Flogger
、Sl4j
、jboss-logging
等常見的框架套件,它們都是屬於interface的層級。
真正實踐的部分是 Log4j JUL
(java.util.logging)或是 Log4j2 Logback
。
而Spring Boot官方推薦的是Sl4j
+Log4j2 Logback
的搭配。
以下就以log4j2.yml的設定檔來說明
log4j2.yml
log4j2.yml放在專案 src > main > resources
底下(與application.yml為同層)
整體組成為在Configuration元素下有0至N個appender元素,0至N個logger元素,0至1個root元素(最多只能一個)
Configuration
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- name(可以不用):自訂這個設定檔名稱
- status:log4j2框架自身的輸出log等級,由層級低到高:TRACE < DEBUG < INFO < WARN < ERROR < FATAL,可以修改為其中任意層級。如果設定了ERROR等級,則TRACE、DEBUG、INFO、WARN就不會紀錄。
- properties(可以不用):可以存放一些下方設定檔需要帶入的參數值
Appenders
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
該元素有兩個必需屬性name和class。 appender元素可以包含0至1個layout元素,0至N個encoder元素以及0至N個filter元素
- name:指定該appender的名稱
- class:指定要實例化的appender類的完全限定名稱。
這邊的範例有Console、File、RollingFile三的Appenders
Loggers
下方包含了0至N個logger元素,0至1個root元素
- root:配置一個預設的紀錄等級。並以AppenderRef指定到對應的Appender
- logger:只接受一個必需的name屬性,一個可選的level屬性和一個可選的additivity屬性,允許值為true或false。 level屬性的值允許一個不區分大小寫的字符串值TRACE,DEBUG,INFO,WARN,ERROR,ALL或OFF。特殊於大小寫不敏感的值INHERITED或其同義詞NULL將強制記錄器的級別從層次結構中的較高級別繼承,logger元素可以包含零個或多個appender-ref元素; 這樣引用的每個appender都被添加到指定的logger中,logger元素級別具有繼承性。