【问题标题】:Fluent log4net configuration流畅的 log4net 配置
【发布时间】:2010-01-06 13:16:11
【问题描述】:

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

xml 快把我逼疯了。

如果没有,是否有人知道一个体面的 .Net 日志框架,可以轻松流畅地配置并提供与 log4net 类似的功能?

【问题讨论】:

  • 您在配置的哪些部分遇到了问题?
  • +1 xml 在集成测试中处理起来真的很烦人。不同项目层的文件不断地相互覆盖。

标签: .net configuration log4net fluent


【解决方案1】:

很酷的欢呼我会看看。在 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;
    }

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我对基于 XML 的 log4net 配置感到痛苦。前段时间我对它的调试感到非常沮丧,以至于我开始为 log4net 组合我自己的流利的 API。在 github 上查看 fluent-log4net。并非所有内容都得到 100% 支持,但它正在实现。

      我会说,它确实使一目了然地测试配置变得容易得多。

      【讨论】:

      • 有谁有关于 Fluent-log4net 的教程(来自这个答案)。 GitHub 上的教程确实没有给从未使用过 log4net 的人提供太多帮助。
      【解决方案4】:

      出于这个原因,我后来搬到了NLog

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        • 2014-10-14
        相关资源
        最近更新 更多