La aplicación genera distintos ficheros de registro o Log para registrar las acciones y mensajes que tienen trascendencia y deben quedar registrados.
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 Fichero | Contenido |
---|---|
AccesoAplicacion.log | Es 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.log | Es el registro de errores de la empresa con código xxxx. Incluye la fecha en el nombre del fichero. |
ProductorFichas_aaaa-dd-mm.log | Es el registro de acceso y acciones en la aplicación Productor Fichas |
ProductorDotNet.log | Registro 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....
Este sería un nombre de un logger con 3 niveles:
- Se trata del ensamblado alBLLvdoc
- La clase geVariablesEstructura
- 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:
Orden | Nivel | Descripción |
1 | DEBUG | Es 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 |
2 | INFO | Información. Es el nivel donde aparece cualquier información relevante para el registro del proceso que se ha realizado |
3 | WARN | Se 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 |
4 | ERROR | Se trata de un mensaje de Error que ha impedido completar el proceso |
5 | FATAL | Se 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