Registro de información de depuración (Log)
  • 12 Jan 2022
  • 3 Minutos para leer
  • Colaboradores
  • Oscuro
    Ligero
  • PDF

Registro de información de depuración (Log)

  • Oscuro
    Ligero
  • PDF

Article Summary

La aplicación genera distintos ficheros de registro o Log para registrar las acciones y mensajes que tienen trascendencia y deben quedar registrados.

Carpeta de Logs
La carpeta de logs generales de la aplicación está en la carpeta donde está instalada la aplicación en el servidor, y se llama logs

Ficheros de log

Existen distintos ficheros de registro en la carpeta Logs.
El nombre del fichero nos indica el tipo de contenido que tiene, además incluye la fecha a la que corresponde.

Nombre FicheroContenido
AccesoAplicacion.logEs el registro de acceso a la aplicación.
Incluye información del tipo de licencia utilizado y registra posibles fallos de comprobación de licencia
Errores_EMPxxxx.logEs el registro de errores de la empresa con código xxxx.
Incluye la fecha en el nombre del fichero.
ProductorFichas_aaaa-dd-mm.logEs el registro de acceso y acciones en la aplicación Productor Fichas
ProductorDotNet.logRegistro de las capas bll de la aplicación

Información de depuración

El nuevo sistema de Log de depuración en la aplicación permite recopilar información de depuración de los procesos internos.
Actualmente se aplica al cálculo de variables en estructuras, aunque se irá ampliando con nuevas informaciones de depuración.

Usamos Log4Net como sistema de recopilación y tratamiento de los mensajes de log.

La información de depuración se genera y emite siempre, y el usuario puede configurar el sistema Log4Net para capturar la información que le interese, y enviarla a un fichero, la consola o cualquier otro de los destinos soportados por el sistema Log4Net.

La configuración de log4Net se hace a través del fichero log4net.config.
La aplicación genera información de registro en distintos Loggers, que tienen un nombre estructurado a varios niveles. 

El nombre de un logger está compuesto por varios niveles separados por puntos: nivel1.nivel2.nivel3.nivel4....

Ejemplo de un logger
alBLLvdoc.geVariablesEstructura.calculaVariables
Este sería un nombre de un logger con 3 niveles:
  1. Se trata del ensamblado alBLLvdoc
  2. La clase geVariablesEstructura
  3. El método calculaVariables

Podemos personalizar el comportamiento de log4net en cualquiera de los niveles del Logger.
En el ejemplo previo, a nivel de todo alBLLvdoc, segundo nivel alBLLvdoc.geVariablesEstructura, o al nivel más detallado alBLLvdoc.geVariablesEstructura.calculaVariables

Nueva sección logger en log4net.config

El siguiente fragmento de código XML configura el nivel de captura de eventos para un logger
En este caso establece el nivel a WARN que significa que se registran advertencias o errores.

    <logger name="Gaia.Productor.AppFramework.NetLAKServerManager" additivity="false">
      <level value="WARN"/>
      <appender-ref ref="FicheroAppender"/>
      <appender-ref ref="ConsoleAppender"/>
    </logger>

Niveles de registro

Los eventos registrados en el log tienen un nivel. El nivel determina el tipo de mensaje que es.
Así mismo, la clasificación en niveles es jerárquica, de menos a más grave:

OrdenNivelDescripción
1DEBUGEs el nivel más bajo. Son mensajes de depuración que normalmente no son necesarios. Se trata de información muy detallada para ayudar en la localización de problemas.
Normalmente este nivel no se registra para no llenar los ficheros de log con información innecesaria
2INFOInformación. Es el nivel donde aparece cualquier información relevante para el registro del proceso que se ha realizado
3WARNSe trata de un mensaje de advertencia. El proceso se ha ejecutado, pero se registra una advertencia que no ha impedido la ejecución pero requiere atención
4ERRORSe trata de un mensaje de Error que ha impedido completar el proceso
5FATALSe trata de un mensaje de error grave

Jerarquía de los niveles

El nivel más bajo en jerarquía es DEBUG y el más alto es FATAL.

Cuando configuramos un Logger de Log4Net para registrar un nivel determinado, incluirá ese nivel y todos los superiores.
Por ejemplo, si configuramos para que registre INFO, registrará INFO, WARN, ERROR y FATAL.

Depuración de variables de estructuras

En estructuras con variables a veces es complicado detectar posibles problemas en los cálculos.
Es posible habilitar el log de depuración de variables calculadas.

Para ello edite el fichero log4net.config y añada un logger como este para establecer el nivel DEBUG para el logger alBLLvdoc.geVariablesEstructura

    <logger name="alBLLvdoc.geVariablesEstructura" additivity="false">
      <level value="DEBUG"/> 
      <appender-ref ref="FicheroAppender"/>
      <appender-ref ref="ConsoleAppender"/>
    </logger>

El resultado en el fichero de log será algo similar a esto:

2022-01-12 13:31:46,513 [1] DEBUG alBLLvdoc.geVariablesEstructura.calculaVariables - [Empresa 9022] *** Calcula Variables Estructura 'ZEN1'
2022-01-12 13:31:46,513 [1] DEBUG alBLLvdoc.geVariablesEstructura.calculaVariables - [Empresa 9022] lstSimb(0) -> Símbolo: H  Valor: 2500  Nombre: ALTURA PORTERIA
2022-01-12 13:31:46,513 [1] DEBUG alBLLvdoc.geVariablesEstructura.calculaVariables - [Empresa 9022] lstSimb(1) -> Símbolo: P  Valor: 480  Nombre: MEDIDA PAÑO
2022-01-12 13:31:46,513 [1] DEBUG alBLLvdoc.geVariablesEstructura.calculaVariables - [Empresa 9022] lstSimb(2) -> Símbolo: F  Valor: 250  Nombre: MEDIDA FALDILLA
2022-01-12 13:31:46,513 [1] DEBUG alBLLvdoc.geVariablesEstructura.calculaVariables - [Empresa 9022] lstSimb(3) -> Símbolo: SP Valor: 100 Nombre: SEPARACION PIES