2009-10-15 4 views
0

app.config없이 디버깅을 시도하려고합니다. 그러나 lLog의 상태로 설정 등등 isDebugEnabled, isErrorEnabled, 모두가 보인다log4net 런타임시 디버그 로깅 사용 가능

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

이 작동하려면 : 내가 전화과 같이 만들어 나중에 그런

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

: 나는 다음과 같은 코드가 있습니다 그릇된. 그래서 런타임에 수정하는 방법을 찾고 있습니다.

참고 : MMC에서로드되는 dll이기 때문에 app.config를 사용하지 않습니다.

답변

4

정적 메서드 중 하나를 호출하거나 정적 클래스의 정적 속성에 액세스하지 않으면 정적 이니셜 라이저가 실행되지 않습니다. 어떤 식 으로든 클래스의 정적 멤버에 액세스 할 때까지는 로거가 초기화되지 않습니다.

+0

하하, 완벽합니다. 그걸 보았다 니 믿을 수가 없어. 건배. – Kyle

관련 문제