Compartir a través de


Cómo: Registrar información sobre servicios

De forma predeterminada, todos los proyectos de servicios de Windows tienen la capacidad de interactuar con el registro de eventos de aplicación y escribir en él información y excepciones. Utilice la propiedad AutoLog para indicar que desea esta funcionalidad en la aplicación. De forma predeterminada, el registro está activado para cualquier servicio que se cree con la plantilla de proyecto Servicio de Windows. Puede utilizar una forma estática de la clase EventLog para escribir información de servicio en un registro sin tener que crear una instancia de un componente EventLog ni registrar manualmente un origen.

El instalador del servicio registra automáticamente cada servicio del proyecto como un origen de eventos válido con el registro de aplicación del equipo en el que se instala el servicio, siempre que el registro esté activado. El servicio registra información cada vez que el servicio se inicia, se detiene, se pausa, se reanuda, se instala o se desinstala. También registra cualquier error que se produzca. No es necesario escribir código para escribir entradas en el registro cuando se utiliza el comportamiento predeterminado, ya que el servicio se encargará de ello automáticamente.

Si desea escribir en un registro de eventos distinto del registro de aplicación, deberá establecer la propiedad AutoLog en false, crear su propio registro de eventos personalizado dentro del código de servicios y registrar el servicio como origen válido de entradas para este registro. Deberá escribir código para registrar las entradas en el registro siempre que se produzca una acción de interés.

Nota

Si utiliza un registro de eventos personalizado y configura la aplicación de servicios para que escriba en él, no deberá intentar obtener acceso al registro de eventos antes de establecer en el código la propiedad ServiceName del servicio. El registro de eventos necesita el valor de esta propiedad para registrar el servicio como origen de eventos válido.

Para habilitar el registro de eventos predeterminado para el servicio

  • Establezca la propiedad AutoLog de su componente en true.

    Nota

    De forma predeterminada, esta propiedad está establecida en true. No necesitará establecerla explícitamente a menos que esté generando procesos más complejos, tales como evaluar una condición y, a continuación, establecer la propiedad AutoLog según el resultado de esa condición.

Para deshabilitar el registro de eventos para el servicio

  • Establezca la propiedad AutoLog de su componente en false.

    Me.AutoLog = False
    
            this.AutoLog = false;
    

Para configurar el registro en un registro personalizado

  1. Establezca la propiedad AutoLog en false.

    Nota

    Debe establecer AutoLog en False para poder utilizar un registro personalizado.

  2. Configure una instancia de un componente EventLog en la aplicación de servicios de Windows.

  3. Cree un registro personalizado mediante una llamada al método CreateEventSource y especifique la cadena de origen y el nombre del archivo de registro que desea crear.

  4. Establezca la propiedad Source de la instancia del componente EventLog en la cadena de origen que creó en el paso 3.

  5. Escriba las entradas mediante el método WriteEntry de la instancia de componente EventLog.

    El código siguiente muestra cómo configurar el registro de un registro personalizado.

    Nota

    En este ejemplo de código, una instancia de un componente EventLog se denomina eventLog1 (EventLog1 en Visual Basic). Si ha creado una instancia con otro nombre en el paso 2, cambie el código de forma apropiada.

    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.");
        }
    

Vea también

Conceptos

Introducción a las aplicaciones de servicios de Windows