使用NLog登录EventLog的正确方法

时间:2013-08-11 17:46:59

标签: .net logging configuration nlog

如何使用NLog进行日志记录时,如何避免窗口抱怨缺少事件ID的描述。当我使用时:

<target xsi:type="EventLog" 
        name="eventLog" 
        layout="${message}" 
        machineName="."     
        source="MyApp" 
        log="Application" />

<rules>
    <logger name="*" minlevel="Debug" writeTo="eventLog" />
</rules>

该条目将出现在日志中。但Windows抱怨缺少对事件ID“0”的描述,这是正确的。

我是否必须执行pointed out here之类的操作才能获得干净的日志记录?

2 个答案:

答案 0 :(得分:4)

我知道它是一个旧帖子,但配置应该是

<target xsi:type="EventLog" 
        name="asyncFile" 
        layout="${message}" 
        machineName="."     
        source="MyApp" 
        log="Application" />

<rules>
    <logger name="*" minlevel="Debug" writeTo="asyncFile" />
</rules>

答案 1 :(得分:0)

根据NLog文档,可以设置eventId标记。 https://github.com/nlog/NLog/wiki/EventLog-target

<targets>
  <target xsi:type="EventLog"
          name="String"
          layout="Layout"
          machineName="String"
          source="Layout" 
          category="Layout"
          eventId="Layout"
          log="String" />
<!-- note: source is a string in NLog before 4.0 -->

</targets>