我将目标日志从“应用程序”更改为“ xxxx”。 我使用powersheel删除了Source 并在“ xxxx”下创建它。 当我编写事件时,它不会出现在任何地方。
target = LogManager.Configuration.FindTargetByName("eventlog");
mode = config.RUN_MODE;
LogManager.Configuration.RemoveTarget("console");
((NLog.Targets.EventLogTarget)target).Log = "xxxx";
LoggingConfiguration loggingConfiguration = new LoggingConfiguration();
var asyncFileTarget = new AsyncTargetWrapper(target);
loggingConfiguration.AddTarget("eventlog", asyncFileTarget);
LogManager.Configuration = loggingConfiguration;
LogManager.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, target, mode, true);
LogManager.ReconfigExistingLoggers();
我使用Powershell删除并添加了新的日志和源(已创建“ xxxx”日志):
Remove-EventLog -Source "mySource"
New-EventLog -LogName xxxx -Source "mySource code here
答案 0 :(得分:0)
创建新的事件日志时,服务器需要重新启动。此外,还要确保该帐户具有对事件日志的写访问权限。
同样重要的是,将Configuration属性分配给LogManager将激活配置,因此建议您首先添加规则。
所以不是:
LogManager.Configuration = loggingConfiguration;
LogManager.Configuration.AddRule(LogLevel.Info, LogLevel.Fatal, target, mode, true);
但是:
loggingConfiguration.AddRule(LogLevel.Info, LogLevel.Fatal, target, mode, true);
LogManager.Configuration = loggingConfiguration; // activates config
如果仍有问题,我建议您遵循NLog Troubleshooting guide