. Net Запись службы ядра в неправильный журнал событий - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть основная служба. net 3.1, и я пытаюсь записать в указанный c файл журнала. Вместо того, чтобы идти в новый журнал, данные входа пытаются записать в журнал приложения. Получение: «Процесс был прерван из-за необработанного исключения. Информация об исключении: System.AggregateException: при записи в журнал (ы) произошла ошибка. (Источник не зарегистрирован в журнале« Приложение ». (Он зарегистрирован в журнале. ) "

Код для настройки в createhostbuilder:

    Host.CreateDefaultBuilder(args)
        .UseWindowsService()
        .ConfigureLogging((context, logging) =>
        {
            logging.AddEventLog(new EventLogSettings()
            {
                SourceName = <my service name>,
                LogName = <custom log name>,
                Filter = (x, y) => y >= LogLevel.Information
            });
            logging.AddConsole();
        })

        .ConfigureServices((hostContext, services) =>
        {
            services.AddHostedService<Worker>();
        });

Использование ilogger, и это просто _logger.LogInformation (" my сообщение ");

1 Ответ

0 голосов
/ 04 февраля 2020

"пытается записать в указанный c файл журнала"

Нет, вы определенно нет - код, который вы показали, пытается записать в Windows Журнал событий с использованием Microsoft.Extensions.Logging.EventLog , запись в источник <my service name>.

Если предположить, что это именно то, что вы хотите сделать, а не записывать в файл, сообщение об ошибке явный - указанный вами источник журнала событий еще не существует.

У вас есть 2 варианта:

  1. Сначала создайте источник журнала событий. Это требует прав администратора и обычно выполняется в установщике приложения (вы можете использовать System.Diagnostics.EventLog.CreateEventSource)
  2. Не указывайте пользовательский источник и имя журнала, вместо этого используйте значения по умолчанию - это будет означать, что ваши журналы будут записаны в журнал Application, используя источник ".NET Runtime (который создается AFAIK при установке .NET`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...