Compartilhar via


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çãoObservaçã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çãoObservaçã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

  1. Set the AutoLog property to false.

    ObservaçãoObservação

    Você deve definir AutoLog como falso para usar um log personalizado

  2. Configurar uma instância de um EventLog o componente em seu aplicativo de serviço do Windows.

  3. 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.

  4. Definir o Source propriedade no EventLog a ocorrência de componente para a seqüência de origem que você criou na etapa 3.

  5. 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çãoObservaçã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.");
        }
    

Consulte também

Conceitos

Introdução aos Aplicativos de Serviço do Windows