2010-11-04 23 views
13

He registrado todas mis transacciones de aplicaciones usando Log4net. ¿Hay alguna forma de que pueda deshabilitar y habilitar el registro desde un lugar común sin alterar el código escrito para el registro?Cómo activar/desactivar el registro usando Log4net

+0

¿Se refiere a como en la aplicación.config? – Mark

+0

a través de web.config – saknet

Respuesta

11

Supongo que desea alternar el registro en la aplicación en ejecución a través del código. No he intentado, pero creo que llamar al siguiente método debe deshabilitar el registro:

LogManager.GetRepository().ResetConfiguration(); 

Para volver a habilitar el registro que llamarían

XmlConfigurator.Configure(); 

(o uno de los otros métodos de la XmlConfigurator) .

Sin embargo parece haber un issue llamando al método Configure repetidamente. No sé si esto sería un problema para usted, pero al menos le advertí ...

+0

+1 A diferencia de las otras respuestas, esta cierra los archivos que el registrador mantiene abiertos. –

+0

Esto me ayudó ... – Pritam

11

Puede desactivarlos cambiando el archivo de configuración de log4net. Cambia específicamente el nivel del appender o nivel global al valor "OFF". Ver para más detalles here

+0

Los niveles de registro se definen en el registrador, no en el apilador. Los appenders pueden usar filtros de nivel. También puede ser que un registrador de raíz tenga el nivel APAGADO pero un registrador hijo aún registra algo. –

+0

Sí, claro, pero la idea sigue siendo hacerlo a través de un archivo de configuración, no de código. – Kamarey

+0

Lo suficientemente justo. Sin embargo, tengo la impresión de que esto no es lo que el OP está pidiendo ... –

2

Suponiendo entiendo su pregunta, a partir de las preguntas más frecuentes: http://logging.apache.org/log4net/release/faq.html

¿Cómo se desactiva por completo todo el registro en tiempo de ejecución?

Al establecer el Umbral en la jerarquía en el nivel DESACTIVADO se deshabilitará todo el registro de esa Jerarquía. Esto se puede hacer en el archivo de configuración de log4net configurando el atributo "threshold" en el elemento de configuración de log4net en "OFF". Por ejemplo:

Cuestiones relacionadas