流畅的log4net配置

Bea*_*ler 12 .net configuration log4net fluent

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

xml让我发疯.

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

Bea*_*ler 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;
    }
Run Code Online (Sandbox Code Playgroud)