PatoLaqueado
Clásico
- Registro
- 1 Sep 2009
- Mensajes
- 3.318
- Reacciones
- 78
Depende de la importancia del log yo hago dos cosas, si el log tiene que estar sí o sí, lanzo una excepción y no dejo continuar la app, si el log es prescindible, lo desactivo para toda la app y ahí tomo dos caminos o bien se informa de la excepcion por otro método si es necesario (email, stdout, otro log a pelo, etc.) o bien no se hace nada, todo depende de las especificaciones.
Para resolver la dependencia circular simplemente capturo yo las excepciones necesarias en la clase de configuración cuando va a iniciar el sistema de log y actuo como he puesto antes, sin dejar que pasen a la función que captura el log, que obviamente no sabría ni que hacer dado que lo que ha fallado es su propia inicialización.
Casi siempre uso log4net y las especificaciones consideran los logs imprescindibles así que suelo tomar la primera opción, si inicialización del log peta no dejo seguir.
Todo esto suponiendo que no puedas romper la dependencia entre ellas, que supongo que no, si la puedes romper la lógica del primer párrafo es la misma, la del segundo sobra.
Para resolver la dependencia circular simplemente capturo yo las excepciones necesarias en la clase de configuración cuando va a iniciar el sistema de log y actuo como he puesto antes, sin dejar que pasen a la función que captura el log, que obviamente no sabría ni que hacer dado que lo que ha fallado es su propia inicialización.
Casi siempre uso log4net y las especificaciones consideran los logs imprescindibles así que suelo tomar la primera opción, si inicialización del log peta no dejo seguir.
Todo esto suponiendo que no puedas romper la dependencia entre ellas, que supongo que no, si la puedes romper la lógica del primer párrafo es la misma, la del segundo sobra.