【发布时间】:2016-03-02 10:30:42
【问题描述】:
我使用 log4net 来记录文本文件和 Windows 事件日志。当我在 Visual Studio 中使用 F5 运行调试方法时,两者都可以正常工作。但是,一旦我直接运行 exe,它就不再记录到事件日志中。没有错误被抛出,文本文件日志仍然可以正常工作。
现在我发现问题是,直接运行时VS总是以管理员身份启动但exe文件不是。从我所看到的情况来看,当 log4net 由于缺少权限而无法登录到事件日志时,至少有一个例外,但在我的情况下不是这样。就好像没有日志语句一样。
有没有办法让 log4net 在不以管理员身份启动的情况下记录到事件日志?
配置:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender,log4net">
<file value="c:\\mylogfile.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
<appender-ref ref="EventLogAppender" />
</root>
【问题讨论】:
标签: logging log4net event-log administrator