Почему EventLog записывает информацию в другой журнал (MyNewLog вместо MyApp)? - PullRequest
0 голосов
/ 29 марта 2020

C#,. NET Core 3.1, Windows 10 x64.

Я хочу использовать Windows Просмотр событий через C#. Например, я хочу записать записи в журнал. Я использую код из руководства Microsoft:

using System.Diagnostics; // NuGet: System.Diagnostics.EventLog

namespace ConsoleAppThreading {
    class Program {

        static void Main(string[] args) {
            var source = "MySource";
            var logName = "MyNewLog";
            if (!EventLog.SourceExists(source)) {
                EventLog.CreateEventSource(source, logName);
                return;
            }
            EventLog myLog = new EventLog();
            myLog.Source = source;
            myLog.WriteEntry("Writing to event log.");
        }
    }
}

Я дважды запускал этот код. Работает нормально:

enter image description here

Но если я изменю значения source и logName, я получу неожиданное поведение:

using System.Diagnostics; // NuGet: System.Diagnostics.EventLog

namespace ConsoleAppThreading {
    class Program {

        static void Main(string[] args) {
            var source = "Bushman"; // Changed
            var logName = "MyApp"; // Changed
            if (!EventLog.SourceExists(source)) {
                EventLog.CreateEventSource(source, logName);
                return;
            }
            EventLog myLog = new EventLog();
            myLog.Source = source;
            myLog.WriteEntry("Writing to event log 3."); // Changed
        }
    }
}

Я тоже запускал этот код дважды. Результат:

enter image description here

и

enter image description here

Запись в журнале была записано в другом журнале (MyNewLog вместо MyApp). Почему это происходит?

1 Ответ

1 голос
/ 29 марта 2020

Вы случайно не запускали код с источником «Бушмена» и LogName «MyNewLog» в любое время, когда вы тестировали?

Если это так, вам может потребоваться перезагрузка в соответствии с документацией «Если источник уже был сопоставлен с журналом, и вы переназначаете его в новый журнал, необходимо перезагрузить компьютер, чтобы изменения вступили в силу. "

Ссылка на основную документацию https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.eventlog.source?view=netcore-3.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...