NLog没有写入事件日志.NET Core 2.1

我已经将NLog添加到我的.NET核心控制台应用程序中,它可以处理文件和数据库目标。 但是,当我尝试使用eventviewer时,它不会记录任何内容。 当我为eventviewer目标添加代码时,文件和数据库部分不记录任何内容。 当我删除它时,日志记录再次开始工作。

我使用Powershell为应用程序添加了一个新的事件查看器源,因此这不是问题。 应用程序不会崩溃或报告错误,它运行正常,但在包含事件查看器时不记录任何内容。

      Server=test; Database=test; User Id=sa; Password=password;  INSERT INTO dbo.Log (Application, Logged, Level, Message, Logger, CallSite, Exception ) VALUES (@Application, @Logged, @Level, @Message, @Logger, @Callsite, @Exception);               

关于如何实现这个或者我错过了什么的任何想法?

.Net Core是.Net Framework的一个子集,不包括Windows EventLog之类的东西(因为在其他非Windows设备上不存在)。

您应该首先检查平台支持文档:

https://github.com/NLog/NLog/wiki/platform-support

在那里,您将看到在Windows平台上为.Net Core应用程序创建了一个特殊的Nuget-package:

https://www.nuget.org/packages/NLog.WindowsEventLog/

对我来说,答案是将“NLog.WindowsEventLog”程序集添加到nlog.config的扩展区域:

    

我有默认值:“NLog.Web.AspNetCore”。