流畅的log4net配置

时间:2010-01-06 13:16:12

标签: .net configuration log4net fluent

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

xml让我发疯。

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

4 个答案:

答案 0 :(得分: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 :(得分:1)

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

答案 2 :(得分:1)

我对使用基于XML的log4net配置感到痛苦。很久以前,我对调试它感到很沮丧,因为我开始为log4net编写自己的流畅API。在github上查看fluent-log4net。并非一切都是100%支持,但它已经到了那里。

我会说,它确实使测试配置一目了然更容易。

答案 3 :(得分:1)

由于这个原因,我已经搬到了NLog