2013-08-21 65 views
1

我對log4j完全陌生。我看到有兩個標籤和標籤,指的是各種appender。 正如鏈接所示,即 why do we need root and logger in log4j.xml 「唯一的例外是記錄應用程序中所有類的消息的根記錄器。」我正在使用(根記錄器)。如何在Spring MVC中爲根記錄器設置優先級?

在我的情況下,我必須記錄所有具有級別錯誤的異常到我的外部文件。所以我用

<!-- Root Logger --> 
<root> 
    <priority value="error" /> 
    <appender-ref ref="console" /> 
    <appender-ref ref="FILE" /> 
</root> 

但在我的日誌文件中,我仍然能夠看到信息記錄器消息。 我只需要記錄錯誤消息,所以請告訴我可能的解決方案, 所以我可以糾正它,如果我錯了。

回答

1

這是從log4j的手冊:

如果一個給定記錄器沒有被分配一個級別,那麼它繼承一個從 其最接近的與分配的級別祖先。更正式地:

等級繼承繼承的水平對於給定的記錄器C,等於 在記錄器層次中的第一個非空的水平,從C開始 在朝向根記錄層次結構繼續向上。

基本上,這意味着只有在沒有其他分配的記錄器級別的情況下才會使用根記錄器級別。

例如,您可能在xml文件中有其他記錄器,例如應用程序記錄器和第三方記錄器。這些將覆蓋任何使用它們的類的根記錄器級別(例如您的應用程序和Spring框架)。如果您將所有記錄器設置爲錯誤,那麼您應該看到錯誤。

+0

Thanx爲您的答案,它的作品。 :) – bajrangi