log4j2新手學習——配置文件詳解

log4j2配置文件詳解

log4j2.xml文件的配置大致如下

<Configuration>
        <properties>
        <Appenders>
                <Console>
                        <PatternLayout>
                <File>
                <RollingRandomAccessFile>
                <Async>
        <Loggers>
                <Logger>
                <Root>
                        <AppenderRef>


Configuration:爲根節點,有status和monitorInterval等多個屬性
status的值有 “trace”, “debug”, “info”, “warn”, “error” and “fatal”,用於控制log4j2日誌框架本身的日誌級別,如果將stratus設置爲較低的級別就會看到很多關於log4j2本身的日誌,如加載log4j2配置文件的路徑等信息
monitorInterval,含義是每隔多少秒重新讀取配置文件,可以不重啓應用的情況下修改配置

properties: 屬性使用來定義常量,以便在其他配置的時候引用,該配置是可選的,例如定義日誌的存放位置D:/logs

Appenders:輸出源,用於定義日誌輸出的地方
log4j2支持的輸出源有很多,有控制檯Console、文件File、RollingRandomAccessFile、MongoDB、Flume 等

Console:控制檯輸出源是將日誌打印到控制檯上,開發的時候一般都會配置,以便調試

File:文件輸出源,用於將日誌寫入到指定的文件,需要配置輸入到哪個位置(例如:D:/logs/mylog.log)

RollingRandomAccessFile: 該輸出源也是寫入到文件,不同的是比File更加強大,可以指定當文件達到一定大小(如20MB)時,另起一個文件繼續寫入日誌,另起一個文件就涉及到新文件的名字命名規則,因此需要配置文件命名規則 
這種方式更加實用,因爲你不可能一直往一個文件中寫,如果一直寫,文件過大,打開就會卡死,也不便於查找日誌。

fileName  指定當前日誌文件的位置和文件名稱
filePattern  指定當發生Rolling時,文件的轉移和重命名規則
SizeBasedTriggeringPolicy  指定當文件體積大於size指定的值時,觸發Rolling
DefaultRolloverStrategy  指定最多保存的文件個數
TimeBasedTriggeringPolicy  這個配置需要和filePattern結合使用,注意filePattern中配置的文件重命名規則是${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i,最小的時間粒度是mm,即分鐘
TimeBasedTriggeringPolicy指定的size是1,結合起來就是每1分鐘生成一個新文件。如果改成%d{yyyy-MM-dd HH},最小粒度爲小時,則每一個小時生成一個文件

NoSql:MongoDb, 輸出到MongDb數據庫中
Flume:輸出到Apache Flume(Flume是Cloudera提供的一個高可用的,高可靠的,分佈式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定製)的能力。)
Async:異步,需要通過AppenderRef來指定要對哪種輸出源進行異步(一般用於配置RollingRandomAccessFile)

PatternLayout:控制檯或文件輸出源(Console、File、RollingRandomAccessFile)都必須包含一個PatternLayout節點,用於指定輸出文件的格式(如 日誌輸出的時間 文件 方法 行數 等格式),例如 pattern=”%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n”

Loggers:日誌器 
日誌器分根日誌器Root和自定義日誌器,當根據日誌名字獲取不到指定的日誌器時就使用Root作爲默認的日誌器,自定義時需要指定每個Logger的名稱name(對於命名可以以包名作爲日誌的名字,不同的包配置不同的級別等),日誌級別level,相加性additivity(是否繼承下面配置的日誌器), 對於一般的日誌器(如Console、File、RollingRandomAccessFile)一般需要配置一個或多個輸出源AppenderRef;
每個logger可以指定一個level(TRACE, DEBUG, INFO, WARN, ERROR, ALL or OFF),不指定時level默認爲ERROR 
additivity指定是否同時輸出log到父類的appender,缺省爲true。

 

參考文章:https://blog.csdn.net/vbirdbest/article/details/71751835

https://cxf.apache.org/docs/springboot.html#SpringBoot-SpringBootCXFJAX-RSStarter

 

 

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