Comenzamos con la primera publicación de DunkedNetNuke hablando de una de las características agregadas de la versión 6 de DNN, log4net. Esta herramienta le resultará familiar porque es un puerto de la excelente herramienta Marco Apache log4j ™ al entorno de Microsoft aprovechando todas las novedades que aporta .NETO, para ofrecernos un sistema sólido de generación y envío de logs a múltiples destinos.
Para configurar esta funcionalidad solo tenemos que acceder al archivo DotNetNuke.log4net.config en el que podemos ver la salida de todos los logs que queremos crear. De forma predeterminada, la generación de registros de todos los registros de errores en la aplicación web dirigida a Portales / _default / Logs. Por esta razón, si nuestro sistema de registro va a ser diferente, sería interesante no almacenar estos registros desactivando este appender por defecto cambiando el valor del nivel a «OFF».
Podemos ver como cada salida de los logs se genera mediante un appender, en el que se definen las configuraciones de los mismos para finalmente utilizarlo en un logger. Puede crear tantos appenders y loggers como salidas diferentes que desee generar.
Ahora vamos a agregar un nuevo appender a nuestro registrador para establecer como salida un difusión udp constante que muestra solo los errores de la aplicación:
Creamos el nuevo appender
Lo asignamos dentro de la etiqueta raíz o creamos un registrador para él.
Como puede ver hemos definido un nivel diferente de generación de logs «ERROR» ya que solo nos interesa obtener los errores y no toda la información que genera nuestra instancia DNN, no olvidemos que la vamos a enviar en forma constante flujo de datos a través de la red. Esta práctica puede ser de gran utilidad para las fases de desarrollo ya que nos permite ver constantemente todos los registros de la aplicación que nos interesan.
Para recibir la transmisión y verla podemos usar cualquier aplicación de consumidor de transmisión, en este caso usaremos log4view con la siguiente configuración:
Si usa Windows 7 o posterior y realiza pruebas localmente, use la ip de loopback que termina en 2, cosas que tienen IPv6
Con esto tendremos nuestro receptor configurado por lo que comenzaremos a capturar los errores enviados a través del broadcast UDP generado por log4net.
Ahora procederemos a crear el envío de error crítico a través de Email para lo cual agregaremos otro appender:
De esta forma lograremos que en caso de que ocurra un error crítico, en unos momentos tendremos una alerta con información importante para su rápida resolución:
El ejemplo anterior se ha realizado para una conexión a un servidor SMTP con autenticación básica a través del protocolo TLS, pero si quisiéramos enviar nuestro correo por ejemplo desde una cuenta personal de gmail tendríamos que usar la siguiente configuración para habilitar SSL y permitir gmail para utilizar fuentes que no sean seguras para el envío por correo.
Y habilitamos el uso de fuentes no confiables o nuestros correos electrónicos no llegarán al servidor smtp de gmail
Finalmente, en muchas ocasiones tendremos que operación de depuración del propio log4net, para ello podemos a su vez generar un log de su funcionamiento agregando estas líneas al archivo web.config de nuestra aplicación dentro :
<add
name = «textWriterTraceListener»
type = «System.Diagnostics.TextWriterTraceListener»
initializeData = «C: sitios web myweb.dnndev.me log4net.txt» />
De esta forma tendrás un nuevo log en el que podrás observar los procesos que realiza log4view y depurar posibles errores de una forma más sencilla: