Registrar información de excepción

En capítulos anteriores registramos contenido personalizado. Log4net también permite guardar excepciones con su traza de pila completa, facilitando la depuración a los desarrolladores.

try
{
    int b = 0;
    int a = 100 / b;
}
catch (Exception ex)
{
    log.Error(ex.Message, ex);
}Lenguaje del código: PHP (php)
  1. Disparo de la excepción: 100 / b. Al ser la variable b=0, se lanza DivideByZeroException por división entre cero.
  2. Captura de excepción: catch (Exception ex) captura todas las excepciones derivadas de Exception.
  3. Sintaxis clave para logs: log.Error(ex.Message, ex);
    • Primer parámetro: mensaje de log personalizado (aquí pasamos el resumen de excepción ex.Message)
    • El segundo parámetro debe ser el objeto de excepción ex
    • Cuando log4net detecta que el segundo argumento es una instancia Exception, imprimeautomáticamente toda la traza de pila (StackTrace) con ubicación del error y cadena de llamadas.
Forma incorrecta (no imprime traza de pila)
//  Solo pasamos texto, se pierde la traza de pila
log.Error(ex.ToString());
log.Error(ex.Message);Lenguaje del código: JavaScript (javascript)

Este modo solo muestra el texto de error. Algunos formatos de log no expanden la traza de llamadas automáticamente y complican la depuración.

Sintaxis estándar recomendada
//  Recomendado: añadir contexto de negocio y pasar el objeto excepción
log.Error("Ocurrió un error al ejecutar la operación de división", ex);Lenguaje del código: JavaScript (javascript)

Registrar información de excepción

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *