1
我想要有2個日誌文件,通過在代碼中指定記錄器名稱來記錄我的應用程序。Log4net - 記錄到錯誤的appender
問題是它從來沒有記錄到我想要的目標文件,而是始終記錄到配置中的最後一個聲明的appender(本例中爲LogB)。
我有我的配置設置如下:
<log4net>
<logger name="LogA">
<appender-ref ref="LogA"/>
<level value="DEBUG"/>
</logger>
<logger name="LogB">
<appender-ref ref="LogB"/>
<level value="DEBUG"/>
</logger>
<appender name="LogA" type="log4net.Appender.FileAppender">
<file value="E:\Logs\LogA.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<appender name="LogB" type="log4net.Appender.FileAppender">
<file value="E:\Logs\LogB.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="LogA" />
</root>
<root>
<level value="DEBUG" />
<appender-ref ref="LogB" />
</root>
</log4net>
然後在我的代碼,當我創建一個記錄:
private static readonly ILog logA = LogManager.GetLogger("LogA");
log.Debug("This should log to LogA");
而在一些其他類:
private static readonly ILog logB = LogManager.GetLogger("LogB");
log.Debug("This should log to LogB");
但是沒有任何事情記錄到LogA文件中,它總是輸出到LogB文件中(或者在配置文件中最後出現的任何內容G)。
這是什麼我錯過了?