我正在使用log4net来记录一个项目。为每个appender创建一个不同的log4net.ilog实例
我想登录到3个不同的文件:请求,响应和错误。
<log4net debug="true">
<!--To turn off an appender, simply set it's threshold value to "OFF"-->
<appender type="log4net.Appender.RollingFileAppender" name="RequestAppender">
<file value="requests.txt" />
<threshold value="INFO" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="ResponseAppender">
<file value="responses.txt" />
<threshold value="INFO" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender type="log4net.Appender.RollingFileAppender" name="ErrorAppender">
<file value="errors.txt" />
<threshold value="ERROR" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
</log4net>
但是,我不知道如何获得.NET端每个记录器的实例。 随着standrard,1个Appender的配置,我用以下:
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
但这并不指定appenderName就是,我没有找到一个方法来指定。
任何想法?
谢谢!
编辑: 我想我错过了一些东西,因为我没有定义在我的配置文件中。我不明白记录员和appender之间的分离。编辑#2: 我注意到一些奇怪的东西。在多个3记录器配置之前,我有一个记录器配置。现在,我写入3个记录器的文字写入该日志文件,尽管它不再位于配置文件中。出于某种原因,它不会加载新的配置文件。我如何强迫它这样做?
我认为这是你正在寻找http://stackoverflow.com/questions/1372435/configure-log4net-to-write-to-multiple-files – Microtechie
我也这么认为,语法似乎确定,但它不工作。它编译并运行得很好。但是,所有记录器的所有isLevelEnabled成员都设置为TRUE,即使这不是它们的设置方式,我写入的测试日志也没有记录。 – Niv
试试这个 - [link](http://stackoverflow.com/questions/308436/log4net-programmatically-specify-multiple-loggers-with-multiple-file-appenders) – Nilesh