2016-01-21 63 views
1

我已經看到了很多關於使用log4j2日誌上重複條目職位的雙頭輸出。解決方案似乎是添加addability屬性並將其設置爲false,但它似乎不適合我。我log4j2日誌文件總是有各行[解決]

這裏是我的log4j2.xml

<Configuration status="DEBUG"> 
<Appenders> 
    <Console name="Console" target="SYSTEM_OUT" additivity="false"> 
     <PatternLayout pattern="%d{dd-MM-yyyy HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" /> 
    </Console> 
    <File name="File" fileName="C:\Laguna\Logs\Laguna.log"> 
     <PatternLayout pattern="%d{dd-MM-yyy HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> 
    </File> 
</Appenders> 
<Loggers> 
    <Root level="off"> 
     <AppenderRef ref="Console"/> 
     <AppenderRef ref="File"/> 
    </Root> 
    <Logger name="br.com.flutuante.laguna" level="trace" additivity="false"> 
     <AppenderRef ref="Console"/> 
     <AppenderRef ref="File"/> 
    </Logger> 
</Loggers> 
</Configuration> 

我有兩個控制檯和文件記錄重複的記錄。 我嘗試過在所有地方添加additivity =「false」,甚至刪除ROOT入口,但無法正確使用。

任何人都可以幫助我嗎?

也許我編碼類錯了嗎?

我這樣做是爲了獲得日誌對象...

static final org.apache.logging.log4j.Logger logger = LogManager.getLogger(Laguna.class.getName()); 

,並用它像這樣...

logger.info("Arquivo de configuração carregado"); 

回答

2

這可能是因爲你缺少一個根記錄,如果您不需要其他日誌,請嘗試添加level =「OFF」。

編輯:不知道這是否是你想要的,它應該關閉所有的日誌,除了指定的記錄器是什麼:

<Logger name="br.com.flutuante.laguna" level="trace"/> 
<Root level="off"> 
    <AppenderRef ref="Console"/> 
    <AppenderRef ref="File"/> 
</Root> 

或者只是改變根級別設置默認的日誌記錄級別而設定的指定記錄跟蹤

+0

我有根的水平,但試圖刪除它,看看是否會工作像我想......我把它放在例如一次。我以前沒有嘗試過關卡='關',但即使如此,我仍然得到重複日誌。感謝您的幫助 –

+0

只是爲了澄清,如果你的記錄器使用相同的附加目的地爲根,你不需要再指定它們,而不是刪除加=「假」,讓它空:''。不過,加=「假」應該有工作太... – ecarlos

+0

現在我想起來了日誌副本的第一線......這是配不上我現在。謝謝哥們。 –