.net - 流畅的log4net配置

标签 .net configuration log4net fluent

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

xml 快把我逼疯了。

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

最佳答案

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

关于.net - 流畅的log4net配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2013111/

相关文章:

c# - 将 C# 代码转换为 PowerShell

c# - 正则表达式或其他方法可从特定位置在C#中使用字符串

.net - IIS 7 - 通过负载均衡器后面的 IP 地址限制应用程序

.net - 修改 System.Drawing.Graphics.DrawString() 中的字距调整

c# - OutputDebugStringAppender 在 Visual Studio 中不起作用

java - 将 logback.xml 放在 Tomcat 的什么位置?

php - 在 composer 中设置 "config.fxp-asset.installer-paths"选项

grails - 在Grails中更改附加器的阈值

c# - 日志框架,一个好主意?

c# - Log4net:在创建的文件名中附加时间戳