Escribir en la aplicación de registro de eventos en C#

Luqman Khan 12 octubre 2023
  1. Escribir en la aplicación de registro de eventos en C#
  2. Métodos para Escribir Entradas a la Aplicación de Registro de Eventos en C#
Escribir en la aplicación de registro de eventos en C#

El registro de eventos de Windows es un registro completo del sistema, la seguridad y las notificaciones de aplicaciones almacenadas por el sistema operativo Windows. Los administradores lo utilizan para detectar y diagnosticar problemas del sistema y advertir sobre futuros problemas.

Escribir en la aplicación de registro de eventos en C#

Primero, veremos que podemos escribir en el registro de eventos. Para ello, podemos utilizar el siguiente código:

Sintaxis:

using (EventLog neweventLog = new EventLog("Application"))
{
    neweventLog.Source = "Application";
    neweventLog.WriteEntry("event Log message example", EventLogEntryType.Information, 102, 1);
}

Ahora, expliquemos todas las partes de la sintaxis anterior.

  1. EventLog: el registro de eventos de Windows se usa para registrar los errores de su aplicación o eventos importantes porque los administradores pueden acceder fácilmente a él. Los registros de eventos de Windows se pueden administrar desde una consola similar.
  2. neweventLog.Source: en la fuente de eventos anterior en la tecla eventlog, cada registro contiene subclaves llamadas fuente de eventos; en otras palabras, el nombre del software que registra el evento se denomina origen del evento. Puede ser el nombre de la aplicación o el nombre del subcomponente de la aplicación.

Métodos para Escribir Entradas a la Aplicación de Registro de Eventos en C#

Para escribir entradas de registro de eventos, puede utilizar los siguientes métodos de la clase EventLog:

  1. Método EscribirEntrada()
  2. Método EscribirEvento()

el método WriteEntry()

WriteEntry() requiere un parámetro source en el método estático. La fuente también se puede asignar con el constructor de la clase EventLog.

El primero es el nombre del registro, luego la máquina local y el nombre del origen del evento se definen en el constructor.

Hay tres entradas de registro de eventos que se escriben a continuación:

  1. mensaje: Este es el primer parámetro del método WriteEntry().
  2. EventLogEntryType: puede definir la entrada del registro de eventos con EventLogEntryType. Hay diferentes íconos en el Visor de eventos, según el tipo: Información, Advertencia, Error para auditar SuecessAudit y FailureAudit.
  3. ID de evento: podemos especificar un ID de evento específico de la aplicación que la aplicación puede usar. También podemos pasar datos binarios específicos de la aplicación y una categoría adicional.

No siempre es necesario crear un nuevo origen de eventos para escribir. Puede escribirlo con uno existente con el mismo nombre que el registro de eventos.

Veamos cómo podemos trabajar mediante programación con el registro de eventos de Windows en C#. Podemos crear una fuente en el siguiente código si no existe.

Código de ejemplo:

private string CreateEventSource(string mynewAppName) {
  string eventSource = mynewAppName;
  bool sourceExists;
  try {
    sourceExists = EventLog.SourceExists(eventSource);
    if (!sourceExists) {
      EventLog.CreateEventSource(eventSource, "Application");
    }
  } catch (SecurityException) {
    eventSource = "Application";
  }

  return eventSource;
}

Ahora, expliquemos las partes del código de ejemplo anterior.

  1. sourceExists: con esta búsqueda, la fuente arroja una excepción de seguridad solo cuando no existe.
  2. mynewAppName: puede llamar a la fuente por mynewAppName.

En caso de error, el usuario necesita permiso de administrador por seguridad. Es bastante simple; solo tienes que usar la clase System.Diagnostics.EventLog del framework .NET.

Primero, crearemos una instancia de la clase System.Diagnostics.EventLog en el método WriteEntry(). Luego, usaremos el método EventLog.SourceExists para verificar si existe el sistema de origen del evento.

Lo crearemos en System EventLog si no existe. Nuestros eventos registrados aparecerán en el registro de eventos del sistema y la fuente del evento mostrará “sistema”.

Código de ejemplo:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace neweventlogg {
  internal class Program {
    static void Main(string[] args) {
      using (EventLog neweventLog = new EventLog("Application")) {
        neweventLog.Source = "Application";
        neweventLog.WriteEntry("event Log message example", EventLogEntryType.Information, 102, 1);
      }
    }
  }
}

Se crea un registrador de clase en el código anterior; luego, se realiza el EventLog. Si el registro de eventos ya existe, el mensaje de cadena se almacenará; de lo contrario, se creará una nueva fuente de eventos.

Usando los métodos WriteEvent() y WriteEntry(), podemos escribir eventos en un registro de eventos. Pero en algunos casos, necesitará un permiso especial para escribir en una aplicación de registro de eventos por motivos de seguridad.

Artículo relacionado - Csharp Event