【问题标题】:log4net enable debug logging at runtimelog4net 在运行时启用调试日志记录
【发布时间】:2009-10-15 19:53:35
【问题描述】:

我正在尝试在没有 app.config 的情况下进行调试。我有以下代码:

public static class Logging
{
    private static ConsoleAppender GetConsoleAppender()
    {
        ConsoleAppender lAppender = new ConsoleAppender();
        lAppender.Name = "Console";
        lAppender.Layout = new log4net.Layout.PatternLayout("%date{dd-MM-yyyy HH:mm:ss,fff} %5level [%2thread] %message (%logger{1}:%line)%n");
        lAppender.Threshold = log4net.Core.Level.Error;
        lAppender.ActivateOptions();

        return lAppender;
    }


    private static FileAppender GetFileAppender()
    {
        FileAppender lAppender = new FileAppender();
        lAppender.Name = "File";
        lAppender.AppendToFile = true;
        lAppender.File = "C:\\Enum.log";
        lAppender.Layout = new
        log4net.Layout.PatternLayout("%date{dd-MM-yyyy HH:mm:ss,fff} %5level [%2thread] %message (%logger{1}:%line)%n");
        lAppender.Threshold = log4net.Core.Level.All;
        lAppender.ActivateOptions();



        return lAppender;
    }


    static Logging()
    {
        Logger root;
        root = ((Hierarchy)LogManager.GetRepository()).Root;
        root.AddAppender(GetConsoleAppender());
        root.AddAppender(GetFileAppender());
        root.Level = log4net.Core.Level.All;
        root.Repository.Configured = true;
    }
}

后来我这样打电话:

private static ILog lLog = LogManager.GetLogger(typeof(Logging));

这似乎可行,但是 lLog 的状态将所有 isDebugEnabled、isErrorEnabled 等设置为 false。所以我正在寻找一种在运行时修改这些的方法。

注意:我没有使用 app.config,因为这是从 MMC 加载的 dll。

【问题讨论】:

    标签: c# .net log4net


    【解决方案1】:

    如果您不调用静态方法之一或访问静态类的静态属性,则不会执行静态初始化程序。在您以某种方式访问​​类的静态成员之前,您的记录器不会被初始化。

    【讨论】:

    • 哈哈,完美。不敢相信我看过了。干杯。
    猜你喜欢
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多