tags:

views:

420

answers:

1

Im trying to get debugging working without an app.config. I have the following code:

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;
    }
}

Then later I make a call like so:

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

Which seems to work, however the state of lLog has all of the isDebugEnabled, isErrorEnabled, etc set to false. So im looking for a way to modify these at runtime.

Note: I am not using an app.config becuase this is a dll being loaded from MMC.

+4  A: 

If you don't call one of the static methods or access a static property of your static class, your static initializer is not going to be executed. Until you make an access to the static members of the class in some way, your logger will not be initialized.

Chris Patterson
Haha, perfect. Can't believe I over looked that. Cheers.
Zenox