在NLog for .NET Core应用中将EventLog添加为目标会导致解析配置错误

时间:2018-10-03 11:12:31

标签: .net-core nlog event-log

我有一个使用NLog的.NET Core控制台应用程序。 当我尝试将EventLog作为目标添加到nlog.config中时,配置加载失败,并显示以下内容:

  

System.ArgumentException:找不到目标:“ EventLog”。

我在stackoverflow中发现了类似的问题: NLog not writing to eventlog .NET Core 2.1。建议的解决方案是添加我拥有的Nuget包NLog.WindowsEventLog。我下载的版本是4.5.10,因此它应该没有其他stackoverflow帖子中提到的4.5.7版中的错误。而且仍然无法正常工作。

以下是一些信息:

  • BCL:.NETCore.App(2.1.2)
  • 来自NLog的依赖项:
    • NLog(4.5.10)
    • NLog.Extensions.Logging(1.3.0)
    • NLog.WindowsEventLog(4.5.10)

这是nlog.config:

<?xml version="1.0" encoding="utf-8" ?>
<!-- XSD manual extracted from package NLog.Schema: 
https://www.nuget.org/packages/NLog.Schema-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogFile="logs\internal-log.log"
      internalLogLevel="Trace" >

     <!-- the targets to write to -->
      <targets>
          <target xsi:type="EventLog" name="eventlog" source="testlogging" 
log="Application" layout="${message}" />
      </targets>

  <!-- rules to map from logger name to target -->
  <rules>
    <logger name="*" minlevel="Trace" writeTo="eventlog" />
  </rules>
</nlog>

我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

<nlog ...>

之后添加到您的配置中
<extensions>
   <add assembly="NLog.WindowsEventLog"/>
</extensions>

如果这行不通,请检查内部日志:https://github.com/NLog/NLog/wiki/Internal-logging