2017-04-13 59 views
0

Log4j找到我的配置,因爲只要我刪除它,我收到一條錯誤消息,說它找不到一個,但它的屬性沒有反映在日誌記錄。Log4j2 - 配置被發現,但無法正常工作

log4j2.properties:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="TRACE"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Root level="info"> 
      <AppenderRef ref="Console"/> 
     </Root> 
    </Loggers> 
</Configuration> 

Test.java:

public class Test { 

    private static Logger logger = LogManager.getLogger(Test.class); 

    public static void main(String[] args) throws Exception { 
     logger.info("test"); 
     logger.fatal(logger.getLevel()); 
    } 

} 

輸出:

20:19:31.848 [main] FATAL io.rj93.sarcasm.examples.CnnSentenceClassificationExample - ERROR 

正如你所看到的,記錄器返回的水平是錯誤的時候它被設置爲INFO,時間格式包括毫秒,即使它已被刪除。

配置文件從log4j的網站採取的,只有輕微的變化(中提到的兩個,status="TRACE"

我使用2.8.1版。

回答

2

您在其中使用帶有XML配置的log4j2.properties文件。
這是不一致的。
log4J初始化不識別用作屬性格式的格式。所以它使用默認的log4J配置,爲根記錄器指定ERROR級別。

只需將log4j2.properties重命名爲log4j2.xml即可。

+0

我在詢問之前曾嘗試過,但它拋出並出錯,所以只是認爲它是錯誤的。剛剛意識到它在文件頂部有一個空行。謝謝 – rj93

+0

不客氣。 Log4J 2忽略了'log4j2.properties'文件的不良內容,真是可惜。這是誤導。 – davidxxx

相關問題