Ahora log4net.config no se carga mientras ponía mi clase de contenedor a su propio proyecto de clase

StackOverflow https://stackoverflow.com/questions/1347429

Pregunta

¿Alguien puede ayudar, he estado usando log4net con éxito, básicamente, que tenía una clase estática (envoltorio) en mi webproject y cargo mi config del archivo llamado log4net.config externa mediante la adición de esto en AssemblyInfo.cs

    // log4net config file
    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

Todo bien !, ahora me decidí a mover mi clase estática a su propio proyecto de clase para que pueda compartir mi clase estática (envoltorio) con otros proyectos.

El log4net.config está todavía en el webproject pero por supuesto no es el conseguir cargado ahora, puedo decir esto porque en mi clase estática (ahora su propio proyecto) que estoy haciendo

          return LogManager.GetLogger("InfoLogger").IsInfoEnabled;

y IsInfoEnabled devuelve falso, y nada se está registrando, no se está leyendo el archivo .config ...

Al recordar la envoltura Log4net (clase estática) está en su propio proyecto de clase, pero el archivo .config está en el ihave proyecto web .. lo necesito así porque .config puede cambiar en un proyecto por proyecto, pero en general la envoltura no lo hará.

Por supuesto, pensé que me voy a crear una clase abstracta y simplemente heredar en mi webproject y anular cualquier cosa si tengo que ... pero por supuesto no se puede heredar clases estáticas o incluso hacer abstracta ..

Estoy seguro de que alguien más ha llegado a través de esto, alguna idea? .. cualquier ayuda muy apreciada

¿Fue útil?

Solución

Es necesario poner el atributo de montaje XmlConfigurator en la biblioteca de clases que envuelve log4net. Usted puede mantener su archivo log4net.config en el directorio raíz de la aplicación web.

El atributo montaje XmlConfigurator se lee la primera vez que se inicializa log4net. Log4net escanea el conjunto de llamadas para encontrar el atributo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top