12

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

xml 让我发疯。

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

4

4 回答 4

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;
    }
于 2010-01-07T12:39:16.187 回答
1

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

于 2010-01-06T13:23:36.303 回答
1

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

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

于 2011-07-12T03:58:39.567 回答
1

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

于 2011-07-12T04:01:46.400 回答