内容简介:http://stackoverflow.com/questions/17106559/using-log4net-to-write-to-different-loggers
我正在使用log4net来做我的日志.
我想要它同时写入一个文件和事件日志.
由于某些原因,我在日志文件中发现两次.
这是我的app.config-section:
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="EventLogAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="c:\temp\DIS-logfile.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<param name="Indigo.DataIntakeService" value="eventlog" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level %logger - %message%newline" />
</layout>
</appender>
</log4net>
在我的代码中,我需要如下:
private static readonly ILog Log = log4net.LogManager.GetLogger("DataIntakeService");
private static readonly ILog LogEvents = log4net.LogManager.GetLogger("EventLogAppender");
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
}
public static void LogInfo(string message)
{
Log.Info(message);
LogEvents.Info(message);
}
它根据请求写入我的日志文件,但是消息也应该去我的eventviewer,而不会发生.它也将这些消息写入日志文件.
我哪里做错了?
您已配置Log4Net,以便根日志记录器同时记录文件和事件日志追加器.
所有记录器都会继承此配置,因此您的记录器“DataIntakeService”和“EventLogAppender”都会记录到这些附录.
如果在事件查看器中看不到日志消息,可能是因为您的应用程序没有创建事件源的权限.
UPDATE
How can i configure it so the DataIntakeService logs to the file and the other one to the eventviewer ?
以下是一个示例配置:
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
</root>
<logger name="EventLogAppender" additivity="False">
<level value="INFO" />
<appender-ref ref="EventLogAppender" />
</logger>
<appender>
...
有了这个例子:
>根记录器(以及所有的子记录器,除非另有明确配置)将记录到LogFileAppender.您的DataIntakeService记录器未显式配置,因此继承此配置.
> EventLogAppender记录器被明确配置为登录到EventLogAppender,并且配置为不继承父记录器中的设置(additivity =“false”).因此,它不会记录到LogFileAppender.如果设置additivity =“true”,它将继承设置并记录到LogFileAppender和EventLogAppender.
顺便提一句,命名一个记录器EventLogAppender可能有点混乱:EventLogLogger可能是一个更好的名字.
http://stackoverflow.com/questions/17106559/using-log4net-to-write-to-different-loggers
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- spring-mvc – Log4j,Spring MVC,没有可用于记录器的appender
- 优化ElasticSearch写入效率
- golang 创建,读取,写入文件
- Kafka学习笔记 -- 写入数据
- Elasticsearch 写入原理深入详解
- 高频写入redis场景优化
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python网络编程基础
John Goerzen / 莫迟 等 / 电子工业出版社 / 2007 / 68.00元
《Python网络编程基础》可以作为各层次Python、Web和网络程序的开发人员的参考书,在实际工作中使用书中的技术,效果更佳。一起来看看 《Python网络编程基础》 这本书的介绍吧!