2014-05-21 2 views
0

우리가 log4net.config하고있는 AssemblyInfo.cs를 사용 log4net을 구성 C#에서 LogLevel에 구성 얻을/체크log4net이 -

[assembly: log4net.Config.XmlConfigurator(ConfigFile = 
      "log4netGui.config", Watch = true)] 

이제 우리는 log4net.config에

를 구성 LogLevel에 (LevelRangeFilter)를 얻을 필요가 우리

: C#에서

<levelMin value="DEBUG" /> 
<levelMax value="FATAL" /> 

우리가 이런 식으로 모든 LogLevel에 확인할 수 있습니다 : 다음과 같이 설정

그래서 우리는 모든 log4net.Core.Level.xxxxx를 확인해야 할 것입니다. 배열이나 비슷한 것으로 구성된 logLevel을 반환하는 메소드가 없습니까?

가능한 수준은 다음과 같습니다

public static readonly Level Alert; 
public static readonly Level All; 
public static readonly Level Critical; 
public static readonly Level Debug; 
public static readonly Level Emergency; 
public static readonly Level Error; 
public static readonly Level Fatal; 
public static readonly Level Fine; 
public static readonly Level Finer; 
public static readonly Level Finest; 
public static readonly Level Info; 
public static readonly Level Log4Net_Debug; 
public static readonly Level Notice; 
public static readonly Level Off; 
public static readonly Level Severe; 
public static readonly Level Trace; 
public static readonly Level Verbose; 
public static readonly Level Warn; 

답변

1
private readonly List<Level> logLevels = new List<Level> 
{ 
    Level.Alert, 
    Level.All, 
    Level.Critical, 
    Level.Debug, 
    Level.Emergency, 
    Level.Error, 
    Level.Fatal, 
    Level.Fine, 
    Level.Finer, 
    Level.Finest, 
    Level.Info, 
    Level.Log4Net_Debug, 
    Level.Notice, 
    Level.Off, 
    Level.Severe, 
    Level.Trace, 
    Level.Verbose, 
    Level.Warn 
}; 

public IList<Level> EnabledLogLevels(ILog logger) 
{ 
    List<Level> levels = new List<Level>(); 

    foreach (Level level in logLevels) 
    { 
     if (logger.Logger.IsEnabledFor(level)) 
     { 
      levels.Add(level); 
     } 
    } 

    return levels; 
} 
+0

내 잘못 언급하는 것을 잊었다, 우리는 내가 내 대답을 편집 한 –

+0

... .NET 2.0에있어. – stuartd

관련 문제