Procedura: registrare informazioni sui servizi
Aggiornamento: novembre 2007
In base all'impostazione predefinita, tutti i progetti di servizi Windows offrono la possibilità di interagire con il log degli eventi dell'applicazione e di scrivere informazioni ed eccezioni. Per indicare se si desidera questa funzionalità nell'applicazione, utilizzare la proprietà AutoLog. In base all'impostazione predefinita, la registrazione è attivata per ogni servizio creato con il modello di progetto dei servizi Windows. È possibile utilizzare un form statico della classe EventLog per scrivere le informazioni sul servizio in un log senza che sia necessario creare un'istanza di un componente EventLog o registrare un'origine manualmente.
Quando si attiva la registrazione, il programma di installazione per il servizio registra automaticamente ogni servizio del progetto come origine valida di eventi con il log di applicazione sul computer dove è installato il servizio. Il servizio registra le informazioni ogni volta che viene avviato, interrotto, sospeso, ripreso, installato o disinstallato. Registra anche gli eventuali errori. Quando si utilizza il comportamento predefinito, non è necessario creare codice per scrivere le voci nel log, perché il servizio gestisce questa operazione automaticamente.
Se si desidera scrivere in un log eventi diverso da quello dell'applicazione, è necessario impostare la proprietà AutoLog su false, creare il log eventi personalizzato nel codice del servizio e registrare il servizio come origine valida per le voci di tale log. Per ulteriori informazioni, vedere Procedura: creare e rimuovere log eventi personalizzati. È quindi necessario compilare il codice per registrare le voci nel log ogni volta che si verifica un'operazione rilevante.
Nota: |
---|
Se si utilizza un log eventi personalizzato e si configura l'applicazione di servizio in modo che lo utilizzi, non tentare di accedere al log eventi prima di impostare la proprietà ServiceName del servizio nel codice. Il valore di questa proprietà è necessario per registrare il servizio nel log eventi come origine valida di eventi. |
Per attivare la registrazione predefinita degli eventi per il servizio
Impostare la proprietà AutoLog per il componente su true.
Nota: Per impostazione predefinita, questa proprietà è impostata su true. Non è necessario impostare tale proprietà in modo esplicito a meno che non sia in corso un'elaborazione più complessa, ad esempio la valutazione di una condizione e l'impostazione della proprietà AutoLog in base al risultato di tale condizione.
Per disattivare la registrazione degli eventi per il servizio
Impostare la proprietà AutoLog per il componente su false.
Me.AutoLog = False
this.AutoLog = false;
this.set_AutoLog(false);
Per impostare la registrazione in un log personalizzato
Impostare la proprietà AutoLog su false.
Nota: Per utilizzare un log personalizzato, è necessario impostare AutoLog su false.
Impostare un'istanza di un componente EventLog nell'applicazione di servizio di Windows. Per ulteriori informazioni, vedere Procedura: creare istanze del componente EventLog.
Creare un log personalizzato mediante una chiamata al metodo CreateEventSource e specificando la stringa di origine e il nome del file di log da creare.
Impostare la proprietà Source dell'istanza del componente EventLog sulla stringa di origine creata nel passaggio 3.
Accedere al metodo WriteEntry dell'istanza del componente EventLog per scrivere le voci.
Nel codice riportato di seguito viene illustrato come impostare la registrazione in un log personalizzato.
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."); }
Vedere anche
Attività
Procedura: creare e rimuovere log eventi personalizzati
Procedura: creare istanze del componente EventLog