2011-04-19 18 views
1

我是log4net的新手,我不太清楚如何在dll中有多個記錄器時正確設置我的app.config。那麼我做,但我想知道有10-20個不同的記錄器時是否有更簡單的方法。也可能是我不明白這一點。如何在dll中配置多個記錄器

好了,所以我們說的DLL使用下面的記錄器(它實際上是大約20個不同的語句是這樣):

private static readonly ILog log = LogManager.GetLogger(typeof(XmlConfiguration)); 
private static readonly ILog log = LogManager.GetLogger(typeof(ClassValidator)); 

這是否意味着我需要做這樣的事情在我的app.config(我有爲簡潔起見省略了appender)?

<logger name="XmlConfiguration" additivity="false"> 
    <level value="DEBUG"/> 
    <appender-ref ref="FileLog"/> 
</logger> 

<logger name="ClassValidator" additivity="false"> 
    <level value="DEBUG"/> 
    <appender-ref ref="FileLog"/> 
</logger> 

我可以配置它在某種程度上使得由一個特定的DLL或部分的命名空間暴露的每個記錄(在DLL記錄器是在幾個不同的命名空間,但都有一個共同的根命名空間)都去到相同的日誌源(文件,控制檯等)?

回答

2

是的,你是對的。您可以通過配置多記錄器設置爲不同的dll不同的登錄等級:

這裏是我已經成功地使用一個例子:

<!-- ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF --> 
<root> 
    <level value="Error"/> 
    <appender-ref ref="RollingLogFileAppender"/> 
</root> 

<logger name="NHibernate"> 
    <level value="ERROR" /> 
</logger>