log4j2配置文件的故事
從前有個老頭叫<configuration>,他有兩個兒子,忠厚老實的老大叫<appenders>,
并且<appenders>有三個兒子,分別叫<console>,<File>和<RollingFile>。這三個都是比較有才華的小伙子。
另一個處事圓滑的老二叫<loggers>,年輕時放蕩不羈,留戀紙醉迷金的生活,至今沒有成家,但是長時間混跡在大城市中的他,倒也有些名氣,好多人偷偷送禮托他辦事。
這是家譜:
我們來詳細介紹一下
老頭configuration
<configuration status="OFF" monitorInterval="30"> </configuration>status:
這是日志自身的日志。一般寫off,代表關閉不顯示。
monitorInterval:
刷新此文件的時間間隔,保證修改后的文件及時生效。
大孫子<console>
<console name="Console" target="SYSTEM_OUT"><!--輸出日志的格式--><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/></console>很顯然配置這個是大孫子能夠將日志輸出至控制臺。
二孫子<File>
<File name="log" fileName="log/test.log" append="false"><PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/></File>二孫子的擅長將日志寫在指定文件夾下的文件里。
fileName:
是生成的日志文件路徑加名稱以及后綴名, log/test.log指在跟目錄log文件夾下的test.log
append:
的值為Bollean類型,當為true的時候 ,日志會追加,否則將覆蓋。
小孫子<RollingFile>
<RollingFile name="RollingFileInfo" fileName="logs/info.log" filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"><ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/><Policies><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="100 MB"/></Policies></RollingFile>SizeBasedTriggeringPolicy:一個小孫子的大小,
<ThresholdFilter level:日志級別。
小孫子擅長將老頭子教的八個日志級別分類保存文件里,小孫子可以有多個,一個負責一個級別的日志,至于為什么小孫子可以有多個?這不合情理?,因為他是孫悟空啊。
老頭子見到三個孫子各個身懷絕技了,該去大城市闖蕩闖蕩了,但是他們的爹<appenders>,雖然穩重能干,但是對大城市的情況時一無所知。所以必須讓老二<loggers>來幫這三個孫子指路。
在將要踏上去大城市的路上之前,二孫子<File>突然改變了想法,他認為不去大城市也能做出成績。
老二<loggers>:
老二<loggers>讓他的助理<root>老司機,負責帶<Console>和<RollingFileInfo>飛。
<loggers><root level="all"><appender-ref ref="Console"/><appender-ref ref="RollingFileInfo"/></root></loggers>后來,<console>和<RollingFile>在二叔的得力助手<root>的指引下,為祖國的建設做的了巨大的貢獻。正如<File>所說,<File>雖然沒有二叔的指導,但是也做出了不小的成就。
下面是完整版
<?xml version="1.0" encoding="UTF-8"?><!--日志級別以及優先級排序: OFF(關閉) > FATAL(致命的) > ERROR > WARN > INFO > DEBUG > TRACE(堆棧) > ALL --><!--Configuration后面的status,這個用于設置log4j2自身內部的信息輸出,可以不設置,當設置成trace時,你會看到log4j2內部各種詳細輸出--><!--monitorInterval:Log4j能夠自動檢測修改配置 文件和重新配置本身,設置間隔秒數--><configuration status="OFF" monitorInterval="30"><!--先定義所有的appender--><appenders><!--這個輸出控制臺的配置--><console name="Console" target="SYSTEM_OUT"><!--輸出日志的格式--><PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/></console>?from:https://segmentfault.com/a/1190000011094806
總結
以上是生活随笔為你收集整理的log4j2配置文件的故事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 聊一聊log4j2配置文件log4j2.
- 下一篇: log4j2入门(四) log4j2.x