Como: Registrar informações sobre serviços
By default, all Windows Service projects have the ability to interact with the Application event log and write information and exceptions to it. Você pode usar o AutoLog propriedade para indicar se deseja que essa funcionalidade no aplicativo. By default, logging is turned on for any service you create with the Windows Service project template. Você pode usar uma forma estática da EventLog classe para gravar informações de serviço em um log sem ter que criar uma instância de um EventLog componente ou registrar manualmente uma fonte.
The installer for your service automatically registers each service in your project as a valid source of events with the Application log on the computer where the service is installed, when logging is turned on. The service logs information each time the service is started, stopped, paused, resumed, installed, or uninstalled. It also logs any failures that occur. You do not need to write any code to write entries to the log when using the default behavior; the service handles this for you automatically.
Se você deseja gravar um log de eventos outro senão o log do aplicativo, você deve definir o AutoLog propriedade para false, criar seu próprio log de eventos personalizado dentro do seu código de serviços e registrar seu serviço como uma origem válida de entradas para esse log. You must then write code to record entries to the log whenever an action you're interested in occurs.
Observação |
---|
Se você usa um log de eventos personalizado e configurar seu aplicativo de serviço para escrever para ele, você não deve tentar acessar o log de eventos antes de configurar o serviço ServiceName propriedade no código. The event log needs this property's value to register your service as a valid source of events. |
To enable default event logging for your service
Definir o AutoLog propriedade para seu componente para true.
Observação By default, this property is set to true. Você não precisará definir isto explicitamente a menos que você esteja criando mais complexo processamento, como, por exemplo, avaliar uma condição e, em seguida, definindo a AutoLog propriedade com base no resultado da condição.
To disable event logging for your service
Definir o AutoLog propriedade para seu componente para false.
Me.AutoLog = False
this.AutoLog = false;
To set up logging to a custom log
Set the AutoLog property to false.
Observação Você deve definir AutoLog como falso para usar um log personalizado
Configurar uma instância de um EventLog o componente em seu aplicativo de serviço do Windows.
Criar um log personalizado chamando o CreateEventSource método e especificando a seqüência de origem e o nome do log de arquivo que você deseja criar.
Definir o Source propriedade no EventLog a ocorrência de componente para a seqüência de origem que você criou na etapa 3.
Gravar as entradas, acessando o WriteEntry método o EventLog instância de componente.
The following code shows how to set up logging to a custom log.
Observação Neste exemplo de código, uma instância de um EventLog componente é denominado eventLog1 (EventLog1 em Visual Basic). Se você tiver criado uma instância com outro nome na etapa 2, altere o código apropriadamente.
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 Sub ... Protected Overrides Sub OnStart(ByVal args() As String) ' Write an entry to the log you've created. EventLog1.WriteEntry("In Onstart.") End Sub
public UserService2() { // Turn off autologging this.AutoLog = false; // create an event source, specifying the name of a log that // does not currently exist to create a new, custom log if (!System.Diagnostics.EventLog.SourceExists("MySource")) { System.Diagnostics.EventLog.CreateEventSource( "MySource","MyLog"); } // configure the event log instance to use this source name eventLog1.Source = "MySource"; } ... protected override void OnStart(string[] args) { // write an entry to the log eventLog1.WriteEntry("In OnStart."); }