2017-01-01 144 views
0

在我的項目中添加了log4j 2。起初,我沒有添加任何配置/屬性文件,並得到消息ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console。這很好,因爲我仍然使用默認設置(和它的工作)。log4j2:日期/轉換模式不起作用

完成設置後,我注意到日誌消息時間戳不包含日期。例如:10:46:24.597 [[STANDBY] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO utils.ServerParamLoader - INFO LOG。所以我開始挖掘網絡的答案。

隨着從log4jtester.com幫助下,我做了一個小log4j2.properties文件:

log4j.rootLogger=INFO, STDOUT 

#appenders 
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender 
log4j.appender.STDOUT.Target=System.out 
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout 
log4j.appender.STDOUT.layout.ConversionPattern=[%d{dd/MM/yyyy HH:mm:ss,SSS}] [%-7p] %c{1}:%L (%t) - %m%n 

我把它放在/ src目錄。

當我再次啓動服務器時,錯誤消息已消失(這就是爲什麼我確定該文件正在加載!),但日誌中的消息仍舊是舊格式。

我在做什麼錯?

(另一件事,也許它可能與不 - 根據API默認的時間戳是ISO8601,其中包含日期!)

回答

1

中的問題顯示的配置文件是舊的Log4j 1格式。它被命名爲log4j2.properties,所以Log4j2會嘗試解析它,但我懷疑發生錯誤,並且最終導致配置無效...

有關Log4j2中的example of the properties format的配置信息,請參閱Log4j2手冊頁。

本手冊中的大多數示例都使用xml格式。出於這個原因,開始使用xml配置文件可能會更容易。

用於console appenderlog4j2.xml配置是:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="warn"> 
    <Appenders> 
    <Console name="STDOUT" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss,SSS}] [%-7p] %c{1}:%L (%t) - %m%n"/> 
    </Console> 
    </Appenders> 
    <Loggers> 
    <Root level="info"> 
     <AppenderRef ref="STDOUT"/> 
    </Root> 
    </Loggers> 
</Configuration>