代码之家  ›  专栏  ›  技术社区  ›  Bealer

流畅的log4net配置

  •  12
  • Bealer  · 技术社区  · 16 年前

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

    或者,如果没有,是否有人知道一个像样的.Net日志框架可以轻松地进行流畅配置,并提供类似于log4net的功能?

    4 回复  |  直到 16 年前
        1
  •  7
  •   Anthony Mastrean PavanDevarakonda    15 年前

    干杯,我来看看。在log4net中也找到了我想要的东西。

    令人恼火的是,我们已经开始使用Castle日志记录工具,它似乎只将字符串带到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;
        }
    
        2
  •  1
  •   kgiannakakis    16 年前

    如果您不介意依赖Microsoft的企业库,您可以使用 Logging Application Block

        3
  •  1
  •   Aaron    15 年前

    我对基于XML的log4net配置感到痛苦。不久前调试它让我感到非常沮丧,我开始为log4net编写自己的fluentapi。退房 fluent-log4net 在github上。并不是所有东西都100%支持,但它正在实现。

    我会说,它确实使测试和查看配置变得容易多了。

        4
  •  1
  •   Jon Erickson    15 年前