2016-09-14 29 views
0

如何對包含final static logger的類進行單元測試?我不需要或不想要不一定它記錄在所有的東西,但是當我運行單元測試應該通過我得到帶記錄器的單元測試類獲取文件的過早結束

[Fatal Error] log4j2.xml:1:151: Premature end of file. 
ERROR StatusLogger Error parsing C:\...\MyProject\target\classes\log4j2.xml 

我應該嘲笑它,不知何故忽略它,還是什麼?我不希望它登錄測試,但我顯然需要它來記錄應用程序本身執行的時間。

回答

0

因此,不是試圖模擬,或以某種方式繞過日誌記錄而複雜化問題,而是選擇讓日誌發生。我只是不允許它寫入我的日誌目錄,也不會將它打印到控制檯。我通過簡單地製作一個src/test/resources文件夾,創建一個log4j2.xml並在其中折騰:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="DEBUG" shutdownHook="disable"> 
    <Properties> 
     <Property name="log-path">./logs</Property> 
    </Properties> 
    <Loggers> 
     <Logger name="root" level="info" additivity="false"> 
      <appender-ref ref="RollingFile" level="info"/> 
     </Logger> 
     <Root level="info" additivity="false"> 
      <AppenderRef ref="RollingFile"/> 
     </Root> 
    </Loggers> 
</Configuration>