log4net / EventLogAppender忽略了我的LogName

时间:2011-09-30 07:48:26

标签: c# log4net

此配置应该使我的日志条目最终出现在自定义日志中,对吧?但它最终会出现在应用程序日志中。我的应用以管理员身份运行。运行我的应用后,我可以确认使用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过去,我才能“自我回答”我的问题。

4 个答案:

答案 0 :(得分:10)

我发现了问题。

  1. 事件视图中的刷新不显示新日志。我不得不重新启动事件查看器以查看我设法创建的自定义日志。

  2. 我的大部分日志条目都在应用程序日志中结束,尽管我指定了日志名称。我的结论是,我可能在今天早些时候使用相同的源名称写入日志,但没有日志名称,因此它“卡住”。修改源名称并重新开始修复问题。

答案 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"/>