此配置应该使我的日志条目最终出现在自定义日志中,对吧?但它最终会出现在应用程序日志中。我的应用以管理员身份运行。运行我的应用后,我可以确认使用EventLog.Exists("MyLog")
和EventLog.SourceExists("MyApplication")
创建了日志和事件源。
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<logName value="MyLog"/>
<applicationName value="MyApp" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message %exception%newline" />
</layout>
</appender>
编辑:我发现问题是什么,但直到8h过去,我才能“自我回答”我的问题。
答案 0 :(得分:10)
我发现了问题。
事件视图中的刷新不显示新日志。我不得不重新启动事件查看器以查看我设法创建的自定义日志。
我的大部分日志条目都在应用程序日志中结束,尽管我指定了日志名称。我的结论是,我可能在今天早些时候使用相同的源名称写入日志,但没有日志名称,因此它“卡住”。修改源名称并重新开始修复问题。
答案 1 :(得分:3)
我遇到了同样的问题,其中log4net创建了我的新日志,但邮件仍然记录在Application
日志中。重新启动事件查看器不起作用,但根据this answer,只需重新启动计算机即可修复问题,并且消息开始按预期记录到新日志中。
答案 2 :(得分:0)
Aaah,eventlogs,我讨厌他们......
您的应用的活动来源是否已在您的日志中注册?除非是这样,否则您使用它编写的所有内容都将在应用程序日志中结束。您必须在安装期间或使用System.Diagnostics.EventLog.CreateEventSource()手动注册它(例如,这一个http://msdn.microsoft.com/en-us/library/2awhba7a.aspx)
小心命名问题!
答案 3 :(得分:-1)
尝试使用<param name="LogName" value="MyLog" />
代替<logName value="MyLog"/>