2010-10-21 57 views
1

我想通過由(閾值和模式)組成的過濾器來過濾我的log4net輸出。因此,只有在級別爲「ERROR」(或更高級別)的情況下,我才允許模式爲「x」的日誌,並且只有級別爲「INFO」(或更高級別)時才允許模式爲「y」的日誌。我可以在一個appender中執行此操作,還是需要兩個appender,每個都有自己的模式過濾器和閾值?模式和級別上的log4net過濾器

回答

1

Log4net允許您鏈接過濾器,但這隻適用於「或」。我認爲你也可以讓它做一個「AND」操作,但不是你想要的。我會寫我自己的過濾器,檢查水平和模式是否匹配。然後鏈接這個過濾器的兩個實例,以檢查第一個條件和第二個條件(「OR」操作)。最後不要忘記DenyAllFilter

我寫了一個自定義過濾器once,也許這對創建過濾器很有幫助。

兩個appender可能是一個解決方法,但是如果你想登錄到一個文件,你有鎖定問題可以解決(性能損失)。

0

你應該看看的人前來要求AND和OR過濾器:Log4Net filters "OR"

據我所知,沒有什麼還沒有實現,但如果你真的需要它,你可以通過繼承FilterSkeleton做的伎倆你自己。