Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Este artigo não se aplica a serviços hospedados no .NET. Para obter o conteúdo mais recente sobre os serviços do Windows que usam Microsoft.Extensions.Hosting.BackgroundService e o modelo Serviço de Trabalho, consulte:
Por defeito, todos os projetos do Windows Service têm a capacidade de interagir com o registo de eventos da Aplicação e escrever informações e exceções. Usas a AutoLog propriedade para indicar se queres esta funcionalidade na tua aplicação. Por defeito, o login está ativado para qualquer serviço que crie com o modelo do projeto Windows Service. Pode usar uma forma estática da EventLog classe para escrever informação de serviço num log sem ter de criar uma instância de um EventLog componente ou registar manualmente uma fonte.
O instalador do seu serviço regista automaticamente cada serviço do seu projeto como fonte válida de eventos com o registo de aplicações no computador onde o serviço está instalado, quando o registo está ativado. O serviço regista a informação cada vez que o serviço é iniciado, interrompido, pausado, retomado, instalado ou desinstalado. Também regista quaisquer falhas que ocorram. Não é necessário escrever código para escrever entradas no log ao usar o comportamento padrão; O serviço trata disto automaticamente por si.
Se quiser escrever num registo de eventos diferente do registo de aplicação, deve definir a AutoLog propriedade para false, criar o seu próprio registo de eventos personalizado dentro do seu código de serviços e registar o seu serviço como fonte válida de entradas para esse registo. Deve então escrever código para registar entradas no registo sempre que ocorra uma ação do seu interesse.
Observação
Se usar um registro de eventos personalizado e configurar a sua aplicação de serviço para escrever nele, não deve tentar aceder ao registro de eventos antes de definir a propriedade ServiceName do serviço no seu código. O registo de eventos precisa do valor desta propriedade para registar o seu serviço como fonte válida de eventos.
Para ativar o registo de eventos por padrão no seu serviço
Defina a AutoLog propriedade do seu componente para
true.Observação
Por padrão, essa propriedade é definida como
true. Não precisa de definir isto explicitamente, a menos que esteja a construir um processamento mais complexo, como avaliar uma condição e depois definir a AutoLog propriedade com base no resultado dessa condição.
Para desativar o registo de eventos para o seu serviço
Defina a AutoLog propriedade do seu componente para
false.AutoLog = false;Me.AutoLog = False
Para configurar o registo num registo personalizado
Defina a propriedade AutoLog como
false.Observação
Deve-se definir AutoLog para false para poder usar um registo personalizado.
Configurar uma instância de um componente EventLog na sua aplicação Windows Service.
Crie um log personalizado chamando o CreateEventSource método e especificando a string de origem e o nome do ficheiro de log que pretende criar.
Defina a propriedade Source na instância de componente EventLog para a string de origem que criou no passo 3.
Escreva as suas entradas acedendo ao WriteEntry método na EventLog instância do componente.
O código seguinte mostra como configurar o login num registo personalizado.
Observação
Neste exemplo de código, uma instância de um EventLog componente é nomeada
eventLog1(EventLog1no Visual Basic). Se criaste uma instância com outro nome no passo 2, altera o código em conformidade.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