2010-01-06 62 views
12

任何人都知道是否有流畅的配置log4net的方式(appenders和appenders的所有属性等)。流利的log4net配置

xml让我疯狂。

如果没有,有谁知道一个体面的.Net日志框架,可以很容易地配置流畅,并提供类似的功能log4net?

+0

? – Paolo 2010-01-06 13:30:35

+3

+1 xml真的很烦人,可以在集成测试中处理。文件从不同的项目层次不断超越对方。 – 2010-06-24 19:48:25

回答

7

酷炫的欢呼让我来看看。在log4net中也找到了我想要的东西。令人讨厌的是,我们已经开始使用Castle Logging Facility,它似乎只是将一个字符串转换为xml文件!所以可能需要考虑通过DSL来完成,并将我们的XML配置生成为预构建步骤。

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

如果您不介意依赖Microsoft的企业库,则可以使用Logging Application Block。配置仍然使用XML,但您可以直接在Visual Studio中通过图形界面进行编辑,

1

我对基于XML的log4net配置感到很痛苦。前段时间我调试它让我感到沮丧,因为我开始将自己的流畅API用于log4net。在github上查看fluent-log4net。并非所有事情都得到100%的支持,但它已经到了。

我会说,它确实使测试更容易查看配置。

+0

有没有人有关于Fluent-log4net的教程(来自这个答案)。 GitHub中的教程确实没有提供从未使用log4net很多帮助的人。 – Phil 2012-02-19 17:33:25

1

因为我已经搬到NLog为配置位被你遇到的麻烦哪位这个原因