使用InstallNlogConfig安装Nlog配置到Eventlog
本文关键字:Eventlog 配置 Nlog InstallNlogConfig 安装 使用 | 更新日期: 2023-09-27 18:17:47
我试图用Nlog写一个日志到Eventlog,这是我的Nlog.config的一个例子
<target xsi:type="EventLog"
name="eventlog"
layout="${message}"
log="Application"
source="MyAppName" />
当使用Administrator权限执行InstallNlogConfig
时,显示此错误:
NLog。NLogConfigurationException:初始化错误EventLog Target[EventLog]—System.IO.IOException:网络路径未找到。
Microsoft.Win32.RegistryKey。Win32ErrorStatic (Int32错误代码,字符串str) enMicrosoft.Win32.RegistryKey。OpenRemoteBaseKey (RegistryHive根键,字符串机器名称,注册视图视图)enSystem.Diagnostics.EventLog。getteventlogregkey(字符串机器,布尔值可写)System.Diagnostics.EventLog。FindSourceRegistration(字符串源,字符串机器名,Boolean只读,Boolean创建System.Diagnostics.EventLog._InternalLogNameFromSourceName(字符串源,字符串机器名称)System.Diagnostics.EventLog。LogNameFromSourceName(字符串源,字符串机器名称)NLog.Targets.EventLogTarget.InitializeTarget()在c:'NLogBuild'src'NLog'Targets'EventLogTarget.cs:líneaNLog.Targets.Target。Initialize(LoggingConfiguration configuration) enc: ' NLogBuild ' src ' NLog ' ' Target.cs目标:288年线。2013-06-1012:21:05.0708提示关闭日志…2013-06-10 12:21:05.0708信息记录器已关闭。
读取Nlog, Eventlog目标。
这篇文章http://berryware.wordpress.com/2009/11/06/nlog-and-windows-event-log-bug/更详细地解释了发生了什么我没有定义machineName。毕竟,文档说明了machineName默认为本地机器,那么为什么要将其设置为任何东西呢?因为如果你不这样做那么一个名为_operational的布尔成员var就会保持为false需要将其设置为true
https://github.com/nlog/nlog/wiki/EventLog-targetmachineName -运行事件日志服务的机器的名称。默认值:.
To easy Fix:
<target name="eventlog" xsi:type="EventLog" layout="${longdate}|${level}|${message}" log="Application" source="My Source" machineName="." />