NLog изменить цель журнала событий на что-то другое, чем приложение - PullRequest
0 голосов
/ 21 мая 2019

Я изменил целевой журнал с приложения на «xxxx».Я удалил источник с помощью powersheel и создал его под «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

1 Ответ

0 голосов
/ 23 мая 2019

При создании нового журнала событий требуется перезагрузка сервера.Также убедитесь, что учетная запись имеет доступ для записи в журнал событий.

Также важно, что назначение свойства конфигурации для 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

...