Compartilhar via


Como: Log de informações sobre serviços

Por padrão, todos os projetos serviço Windows têm a capacidade para interagir com o log de eventos do aplicativo e gravar informações e exceções a ele.Você usa o AutoLog propriedade para indicar se você deseja essa funcionalidade em seu aplicativo. Por padrão, o log está ativado para qualquer serviço que você cria com o modelo de projeto Windows Service.Você pode usar um formulário estático do 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.

Automaticamente o instalador para o serviço registra cada serviço em seu projeto como uma origem válida de eventos com o log do aplicativo no computador onde o serviço é instalado, quando o log está ativado.O serviço registra informações cada vez que o serviço é iniciado, interrompido, pausado, reiniciado, instalado, ou desinstalado.Ele também efetua quaisquer falhas que ocorram.Você não precisa escrever qualquer código para gravar entradas para o log ao usar o comportamento padrão; o serviço trata isso para você automaticamente.

Se você deseja gravar um evento log diferente de log do aplicativo, você deve conjunto o AutoLog propriedade para false, criar seu próprio personalizada evento faça logon com seus códigos de serviço e registrar seu serviço sistema autônomo uma fonte válida de entrada para aquele log. Para obter mais informações, consulte Como: Criar e Remover Personalizar Event Logs. Em seguida, você deve escrever o código para registrar entradas para o log sempre que uma ação que esteja interessado ocorre.

Observação:

Se você usar um log de eventos personalizado e configurar seu aplicativo de serviço para escrever para ele, você não deve tentar acesso o log de eventos antes de configurar o serviço ServiceName propriedade em seu código. O log de eventos precisa deste valor da propriedade para registrar o serviço como uma origem válida de eventos.

Para ativar o log de eventos padrão para o serviço

  • conjunto o AutoLog propriedade para seu componente para true.

    Observação:

    Por padrão, esta propriedade é conjunto para true.Você não precisa conjunto isto explicitamente a menos que você esteja criando mais complexo processamento, sistema autônomo avaliar uma condição e, em seguida, definindo o AutoLog propriedade com base no resultado dessa condição.

Para desativar o log de eventos para o serviço

  • conjunto o AutoLog propriedade para seu componente para false.

    Me.AutoLog = False
    
         this.AutoLog = false;
    
            this.set_AutoLog(false);
    

Para configurar o log para um log personalizado

  1. Defina a propriedade AutoLog como false.

    Observação:

    Você deve conjunto AutoLog para false para usar um log personalizado.

  2. Configurar uma instância de um EventLog componente em seu aplicativo Windows serviço. Para obter mais informações, consulte Como: Criar instâncias de Componente EventLog.

  3. Criar um log personalizado chamando o CreateEventSource método e especificando a seqüência de caracteres de fonte e o nome do arquivo de log que deseja criar.

  4. conjunto o Source propriedade no EventLog instância do componente para a seqüência de fonte que você criou na etapa 3.

  5. Gravar as entradas, acessando o WriteEntry método na EventLog instância do componente.

    O código a seguir mostra como definir o log em um log personalizado.

    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.");
        }
    
        public UserService2()
        {
            // Turn off autologging
            this.set_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.set_Source("MySource");
        }
    
    
    ...
    
    
    
        protected void OnStart(System.String[] args)
        {
            // write an entry to the log
            eventLog1.WriteEntry("In OnStart.");
        }
    

Consulte também

Tarefas

Como: Criar e Remover Personalizar Event Logs

Como: Criar instâncias de Componente EventLog

Conceitos

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