我使用log4net进行了以下配置。问题是,我的C#代码中的记录器现在正在将错误记录到两个日志文件中。在同一个windows服务中有两个不同的服务类。我在一个服务中使用以下行初始化记录器:
private static readonly ILog _logger = LogManager.GetLogger(typeof(EmployeeImportService));但是,当该服务运行并记录时,它将写入两个日志文件。
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="C:\Temp\HRFiles\Sharp\Log\Log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
<appender name="OvertimeLogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="C:\Temp\HRFiles\YTD\Log\Log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="OvertimeLogFileAppender" />
</root>
</log4net>我如何配置它,以便每个服务都写入它自己的日志文件?我看到配置中的记录器标记有一个附加属性,它解决了这个问题,但是我的配置中没有记录器元素。
发布于 2015-12-03 15:11:46
是的我犯了个错误。但它还是安静下来了。您必须在每个追加节点中创建过滤器。
<filter type="log4net.Filter.LoggerMatchFilter">
<!-- allows this sub-namespace to be logged... -->
<loggerToMatch value="EmployeeImportService" />
</filter>https://stackoverflow.com/questions/34068527
复制相似问题