2010-01-06 10 views
12

Cualquiera sabe si hay una forma fluida de configurar log4net (appenders y todas las propiedades de los appenders, etc ...).Configuración fluida de log4net

El xml me está volviendo loco.

O si no, ¿alguien sabe de un marco de trabajo de .Net decente que se puede configurar fácilmente y ofrece características similares a log4net?

+0

qué bits de la configuración ¿Está teniendo problemas con? – Paolo

+3

+1 xml es realmente molesto de manejar en las pruebas de integración. Los archivos se anulan constantemente entre sí desde varios niveles de proyecto. –

Respuesta

7

¡Salud! Voy a echar un vistazo. Encontré lo que estaba buscando en log4net también.

¡Animosamente comenzamos a utilizar Castle Logging Facility que parece llevar una cadena a un archivo xml! Así que puede que tenga que considerar hacerlo todo a través de DSL y generar nuestras configuraciones xml como un paso previo a la compilación.

private static void ConfigureLog() 
    { 
     var root = ((Hierarchy)LogManager.GetRepository()).Root; 
     root.AddAppender(GetConsoleAppender()); 
     root.AddAppender(GetFileAppender(@"d:\dev\huddle\log\Huddle.Sync", "standard.log", Level.Debug)); 
     root.AddAppender(GetFileAppender(@"d:\dev\huddle\log\Huddle.Sync", "error.log", Level.Warn)); 
     root.Repository.Configured = true; 
    } 

    private static FileAppender GetFileAppender(string directory, string fileName, Level threshold) 
    { 
     var appender = new FileAppender 
     { 
      Name = "File", 
      AppendToFile = true, 
      File = directory + "\\" + fileName, 
      Layout = new PatternLayout(_pattern), 
      Threshold = threshold 
     }; 

     appender.ActivateOptions(); 
     return appender; 
    } 

    private static ConsoleAppender GetConsoleAppender() 
    { 
     var appender = new ConsoleAppender 
     { 
      Name = "Console", 
      Layout = new PatternLayout(_pattern), 
      Threshold = Level.Debug 
     }; 

     appender.ActivateOptions(); 
     return appender; 
    } 
1

Si no le importa la dependencia de la biblioteca Enterprise de Microsoft, puede usar el Logging Application Block. La configuración todavía está en XML, pero puede editarla a través de una interfaz gráfica directamente en Visual Studio,

1

Siento tu dolor con la configuración de log4net basada en XML. Me sentí bastante frustrado con la depuración hace un tiempo que comencé a armar mi propia API para log4net. Consulte fluent-log4net en github. Todavía no todo es 100% compatible, pero está llegando.

Hace las pruebas de una visualización de la configuración de un vistazo mucho más fácil, diré.

+0

¿Alguien tiene un tutorial en Fluent-log4net (de esta respuesta). El tutorial en GitHub realmente no proporciona una ayuda que nunca haya usado log4net. – Phil

1

Yo ya he trasladado a NLog por esta misma razón

Cuestiones relacionadas