我是當然我已經使用過這個非常過濾器,但...我有水平調試,過濾器關閉(即接受匹配=真),和不在輸出的過濾器命名空間中的_log.Debug(「whatever」)。log4net過濾器關閉不輸出
我有像這樣一類中定義的記錄,這是在過濾器中使用的命名空間的一部分:
private static readonly ILog _logger = LogManager.GetLogger(typeof(IEntityWithTypedId<>));
如何找出爲什麼我沒有看到任何東西,如何解決任何想法它?
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="Smack.Core.Lib.DomainSuperTypes.EntityImpl" />
<acceptOnMatch value="true" />
</filter>
...
</appender>
<root>
<appender-ref ref="ConsoleAppender"/>
<level value="DEBUG"/>
</root>
</log4net>
UPDATE
嗯,我肯定是做一些愚蠢的;我一直在一個新的項目中,我還沒有添加對log4net的引用!
儘管這是個好消息,因爲它仍然無法正常工作。然而,它並不是過濾器,因爲它從另一個項目運行時確實按預期工作。添加watch = true組件屬性也沒有幫助。
這是愚蠢的,但顯而易見(雖然沒有一個引用log4net!),但我還沒有看到它。
解決
我沒有看到的產量從記錄儀中的一個相關項目到新我補充道。該解決方案有多個項目,都通過符號鏈接共享相同的app.config,這就是爲什麼我期望在新項目中工作與其他項目相同的原因。但它當然不是。
這是直到我實際上添加一個記錄器到新的項目!現在所有的東西都神奇地工作了,所以我想這就是原因(如果是這樣的話,不能說這真的是一個很好的log4net功能)。
你有沒有在你的app.config的configSections log4net(也許只是發佈完整的配置) – sgmoore