2010-07-05 73 views
0

我很新的log4net的,我試圖創建多個文件,並用我的方法調用相應的登錄到他們這裏是我的代碼:登錄到幾個文件,我做錯了什麼?

private static readonly ILog firstlog = LogManager.GetLogger("Data"); private static readonly ILog secondlog = LogManager.GetLogger("General"); 

,然後我日誌是這樣的:

firstlog.Info("some message"); secondlog.Info("some message"); 

,這裏是我的配置文件:

<appender name="General" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="C:\logs\myfile1.log"/> 
    <param name="Threshold" value="DEBUG"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %method %-5level %logger – %message%newline"/> 
    </layout> 
</appender> 
<appender name="Data" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="C:\logs\myfile2.log"/> 
    <param name="Threshold" value="DEBUG"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %method %-5level %logger – %message%newline"/> 
    </layout> 
</appender> 
<logger name="general"> 
    <appender-ref ref="General"/> 
</logger> 
<logger name="data"> 
    <appender-ref ref="Data"/> 
</logger> 
<root> 
    <appender-ref ref="Data"/> 
</root> 

而且他們在一個文件中的所有記錄,另兩個文件是空的。爲什麼是這樣? 我在做什麼錯?

+0

「他們都記錄在一個文件中」 - 該文件實際上寫? – rkellerm 2010-07-05 09:10:02

+1

只是一個猜測,但你可以嘗試提供確切的記錄器名稱LogManager.GetLogger萬一它是區分大小寫的。 – 2010-07-05 09:13:44

+0

它們被記錄到file2。 是的,我注意到數據和一般是小寫,但我仍然得到同樣的事情。 我在想根目錄是「數據」appender,但我的記錄器都沒有做什麼,我可能是錯的。 – Precious 2010-07-05 09:17:40

回答

0

嘗試刪除線

<appender-ref ref="Data"/> 

從節點...

+0

我應該刪除根節點,如果我從所有記錄器中刪除它不會是相同的日誌記錄到單個文件。 – Precious 2010-07-05 09:18:28

+0

節點本身應保留在配置中。在你的例子中,appender「Data」被配置兩次,因爲每個記錄器都從root繼承配置。如果您清空根節點,則解決該問題。 – Koen 2010-07-05 09:22:51

+0

是的,它工作時,我從根節點刪除appender它停止記錄evrything文件2。但是另一個內部錯誤導致了我現在修復的這種困境。 thnx by d way ... 上帝我愛這個網站非常有幫助的人:P – Precious 2010-07-05 09:37:23