Правильная инициализация источника Windows журнала событий в C# - PullRequest
1 голос
/ 10 января 2020

В статье MSDN для класса EventLog он содержит следующий блок кода:

public static void Main(){
    // Create the source, if it does not already exist.
    if(!EventLog.SourceExists("MySource"))
    {
         //An event log source should not be created and immediately used.
         //There is a latency time to enable the source, it should be created
         //prior to executing the application that uses the source.
         //Execute this sample a second time to use the new source.
        EventLog.CreateEventSource("MySource", "MyNewLog");
        Console.WriteLine("CreatedEventSource");
        Console.WriteLine("Exiting, execute the application a second time to use the source.");
        // The source is created.  Exit the application to allow it to be registered.
        return;
    }
    // Create an EventLog instance and assign its source.
    EventLog myLog = new EventLog();
    myLog.Source = "MySource";

    // Write an informational entry to the event log.    
    myLog.WriteEntry("Writing to event log.");
}

Я хочу правильно реализовать экземпляр EventLog во время разработки приложение, которое входит в систему просмотра событий. Тем не менее, я не могу найти упоминания об этом требовании за пределами этой статьи, и мое приложение, кажется, работает хорошо без применения этого. Кроме того, учебник MSDN по созданию службы, использующей класс EventLog, также не выполняет это требование.

Какие риски присущи, если приложение не требуется дважды загружать, если приложение использует класс EventLog? Является ли наихудший риск потери какой-либо зарегистрированной информации или есть более тонкое и ужасное поведение, к которому это может привести?

1 Ответ

0 голосов
/ 10 января 2020

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

...