Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта статья не относится к размещенным службам в .NET. Последние сведения об использовании Microsoft.Extensions.Hosting.BackgroundService служб Windows и шаблоне рабочей службы см. в следующих статье:
По умолчанию все проекты службы Windows могут взаимодействовать с журналом событий приложения и записывать в него сведения и исключения. Для указания того, требуется ли эта функция в вашем приложении, используется свойство AutoLog. По умолчанию ведение журнала включается для любой службы, созданной с помощью шаблона проекта службы Windows. Для записи сведений о службе в журнал можно использовать статическую форму EventLog класса, не создавая экземпляр EventLog компонента или регистрируя источник вручную.
Установщик службы автоматически регистрирует каждую службу в проекте в качестве допустимого источника событий с помощью журнала приложений на компьютере, на котором установлена служба, при включении ведения журнала. Сведения о службе записываются при каждом запуске службы, остановке, приостановке, возобновлении, установке или удалении. Он также регистрирует все возникающие сбои. Вам не нужно писать код для записи записей в журнал при использовании поведения по умолчанию; Служба обрабатывает это автоматически.
Если вы хотите записать в журнал событий, отличный от журнала приложений, необходимо задать AutoLog свойство false, создать собственный пользовательский журнал событий в коде служб и зарегистрировать службу в качестве допустимого источника записей для этого журнала. Затем необходимо написать код для записи записей в журнал всякий раз, когда возникает нужное действие.
Замечание
Если вы используете пользовательский журнал событий и настраиваете приложение-службу для записи в него, перед настройкой свойства службы ServiceName в коде не следует пытаться получить доступ к журналу событий. Журнал событий должен иметь значение этого свойства, чтобы зарегистрировать службу в качестве допустимого источника событий.
Включение ведения журнала событий по умолчанию для службы
Задайте свойство
trueдля компонента AutoLog.Замечание
По умолчанию для свойства задано значение
true. Этот параметр не требуется задавать явно, если вы не создаете более сложную обработку, например вычисление условия, а затем задание AutoLog свойства на основе результата этого условия.
Отключение ведения журнала событий для службы
Задайте свойство
falseдля вашего компонента AutoLog.AutoLog = false;Me.AutoLog = False
Настройка ведения журнала в кастомном журнале
Задайте для свойства AutoLog значение
false.Замечание
Для использования пользовательского журнала необходимо установить AutoLog в значение false.
Установите экземпляр компонента EventLog в приложении службы Windows.
Создайте пользовательский журнал, вызвав CreateEventSource метод и указав исходную строку и имя файла журнала, который требуется создать.
Установите свойство Source экземпляра компонента EventLog на исходную строку, созданную на шаге 3.
Записывайте данные, используя метод WriteEntry экземпляра компонента EventLog.
В следующем коде показано, как настроить ведение журнала в пользовательском журнале.
Замечание
В этом примере кода экземпляр компонента называется
eventLog1(EventLog1в Visual Basic). Если вы создали экземпляр с другим именем на шаге 2, измените код соответствующим образом.public UserService2() { eventLog1 = new EventLog(); // Turn off autologging AutoLog = false; // create an event source, specifying the name of a log that // does not currently exist to create a new, custom log if (!EventLog.SourceExists("MySource")) { EventLog.CreateEventSource( "MySource", "MyLog"); } // configure the event log instance to use this source name eventLog1.Source = "MySource"; eventLog1.Log = "MyLog"; }Public Sub New() ' Turn off autologging Me.AutoLog = False ' Create a new event source and specify a log name that ' does not exist to create a custom log If Not System.Diagnostics.EventLog.SourceExists("MySource") Then System.Diagnostics.EventLog.CreateEventSource("MySource", "MyLog") End If ' Configure the event log instance to use this source name EventLog1.Source = "MySource" End Subprotected override void OnStart(string[] args) { // write an entry to the log eventLog1.WriteEntry("In OnStart."); }Protected Overrides Sub OnStart(ByVal args() As String) ' Write an entry to the log you've created. EventLog1.WriteEntry("In Onstart.") End Sub