@@ -10,6 +10,10 @@ public static class LogLevelHelper
1010 {
1111 private static readonly Lazy < IEnumerable < LogLevel > > _logLevels = new Lazy < IEnumerable < LogLevel > > ( GetLogLevels ) ;
1212
13+ private static readonly Logger Logger = LogManager . GetCurrentClassLogger ( ) ;
14+ private static string LogHeader ;
15+ private static bool LogHeaderWritten ;
16+
1317 public static IEnumerable < LogLevel > LogLevels
1418 {
1519 get
@@ -39,8 +43,24 @@ public static int MaxLogLevel()
3943 return GetLogLevels ( ) . Max ( lvl => lvl . Ordinal ) ;
4044 }
4145
46+ public static void SetDebugInfo ( String value )
47+ {
48+ LogHeader = value ;
49+ LogHeaderWritten = false ;
50+ }
51+
4252 public static void SetMinimumLogLevel ( LogLevel minimumLogLevel )
4353 {
54+ if ( LogManager . GlobalThreshold == minimumLogLevel )
55+ {
56+ return ;
57+ }
58+ if ( LogHeaderWritten == true )
59+ {
60+ Logger . Log ( LogLevel . Info , "Minimum log level changing from " +
61+ LogManager . GlobalThreshold . Name +
62+ " to " + minimumLogLevel . Name ) ;
63+ }
4464 var loggingRules = LogManager . Configuration . LoggingRules ;
4565 foreach ( var loggingRule in loggingRules )
4666 {
@@ -49,6 +69,7 @@ public static void SetMinimumLogLevel(LogLevel minimumLogLevel)
4969 if ( minimumLogLevel == LogLevel . Off )
5070 {
5171 LogManager . DisableLogging ( ) ;
72+ LogManager . GlobalThreshold = minimumLogLevel ;
5273 LogManager . ReconfigExistingLoggers ( ) ;
5374 return ;
5475 }
@@ -63,7 +84,13 @@ public static void SetMinimumLogLevel(LogLevel minimumLogLevel)
6384 }
6485 }
6586 }
87+ LogManager . GlobalThreshold = minimumLogLevel ;
6688 LogManager . ReconfigExistingLoggers ( ) ;
89+ if ( LogHeaderWritten == false )
90+ {
91+ Logger . Log ( minimumLogLevel , LogHeader ) ;
92+ LogHeaderWritten = true ;
93+ }
6794 }
6895
6996 private static void ClearLogLevels ( LoggingRule loggingRule )
0 commit comments