gpt4 book ai didi

c# - NLog 不写入事件日志 .NET Core 2.1

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:18 29 4
gpt4 key购买 nike

我已将 NLog 添加到我的 .NET Core 控制台应用程序中,它适用于文件和数据库目标。但是,当我尝试让它与 eventviewer 一起工作时,它不会记录任何内容。当我为事件查看器目标添加代码时,文件和数据库部分不记录任何内容。当我删除它时,日志记录再次开始工作。

我已经使用 Powershell 为应用程序添加了一个新的事件查看器源,所以这不会成为问题。该应用程序不会崩溃或报告错误,它运行良好,但在包含事件查看器时不会记录任何内容。

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xsi:schemaLocation="NLog NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogFile="c:\temp\console-example-internal.log"
internalLogLevel="Info" >

<targets>
<target xsi:type="File" name="logfile" fileName="c:\temp\console-example.log"
layout="${date}|${level:uppercase=true}|${message} ${exception}|${logger}|${all-e
vent-properties}" />

<target xsi:type="Console" name="console"
layout="[${longdate}][${machinename}][${level:uppercase=true}] ${message} ${exception}" />

<target xsi:type="EventLog" name="eventlog" source="testlogging" log="Application"
layout="${message}${newline}${exception:format=ToString}" />

<target xsi:type="Database" name="database" >
<connectionString>Server=test; Database=test; User Id=sa; Password=password;</connectionString>
<commandText>
INSERT INTO dbo.Log (Application, Logged, Level, Message, Logger, CallSite, Exception )
VALUES (@Application, @Logged, @Level, @Message, @Logger, @Callsite, @Exception);
</commandText>
<parameter name="@application" layout="TestLoggingApp" />
<parameter name="@logged" layout="${date}" />
<parameter name="@level" layout="${level}" />
<parameter name="@message" layout="url: ${aspnet-request-url} | action: ${aspnet-mvc-action} | ${message}" />

<parameter name="@logger" layout="${logger}" />
<parameter name="@callSite" layout="${callsite:filename=true}" />
<parameter name="@exception" layout="${exception:tostring}" />
</target>
</targets>

<rules>
<logger name="*" minlevel="Trace" writeTo="logfile, console, database" />
</rules>
</nlog>

关于如何实现这个的任何想法或者我是否遗漏了什么?

最佳答案

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

<extensions>
<add assembly="NLog.WindowsEventLog" />
</extensions>

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

关于c# - NLog 不写入事件日志 .NET Core 2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51615831/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com