C# log4net在运行时启用调试日志记录

C# log4net在运行时启用调试日志记录,c#,.net,log4net,C#,.net,Log4net,我试图在没有app.config的情况下让调试工作正常。我有以下代码: public static class Logging { private static ConsoleAppender GetConsoleAppender() { ConsoleAppender lAppender = new ConsoleAppender(); lAppender.Name = "Console"; lAppender.Layout =

我试图在没有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。

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

如果您不调用某个静态方法或访问静态类的静态属性,则不会执行静态初始值设定项。在您以某种方式访问该类的静态成员之前,您的记录器不会被初始化。

哈哈,太好了。真不敢相信我看多了。干杯。哈哈,太好了。真不敢相信我看多了。干杯