@@ -89,5 +89,61 @@ public void AddDynamicConsole_Works_WithAddConfiguration()
8989 Assert . True ( logger . IsEnabled ( LogLevel . Warning ) , "Warning level should be enabled" ) ;
9090 Assert . False ( logger . IsEnabled ( LogLevel . Debug ) , "Debug level should NOT be enabled" ) ;
9191 }
92+
93+ [ Fact ]
94+ public void DynamicLevelSetting_ParmLessAddDynamic_NotBrokenByAddConfiguration ( )
95+ {
96+ // arrange
97+ var configuration = new ConfigurationBuilder ( ) . AddInMemoryCollection ( appsettings ) . Build ( ) ;
98+ var services = new ServiceCollection ( )
99+ . AddLogging ( builder =>
100+ {
101+ builder . AddConfiguration ( configuration . GetSection ( "Logging" ) ) ;
102+ builder . AddDynamicConsole ( ) ;
103+ } )
104+ . BuildServiceProvider ( ) ;
105+
106+ // act
107+ var logger = services . GetService ( typeof ( ILogger < DynamicLoggingBuilderTest > ) ) as ILogger < DynamicLoggingBuilderTest > ;
108+
109+ // assert
110+ Assert . NotNull ( logger ) ;
111+ Assert . True ( ( logger ) . IsEnabled ( LogLevel . Warning ) , "Warning level should be enabled" ) ;
112+ Assert . False ( ( logger ) . IsEnabled ( LogLevel . Debug ) , "Debug level should NOT be enabled" ) ;
113+ Assert . False ( ( logger ) . IsEnabled ( LogLevel . Trace ) , "Trace level should not be enabled yet" ) ;
114+
115+ // change the log level and confirm it worked
116+ var provider = services . GetRequiredService ( typeof ( ILoggerProvider ) ) as DynamicLoggerProvider ;
117+ provider . SetLogLevel ( "Steeltoe.Extensions.Logging.Test" , LogLevel . Trace ) ;
118+ Assert . True ( ( logger ) . IsEnabled ( LogLevel . Trace ) , "Trace level should have been enabled" ) ;
119+ }
120+
121+ [ Fact ]
122+ public void DynamicLevelSetting_WithParmsAddDynamic_NotBrokenByAddConfiguration ( )
123+ {
124+ // arrange
125+ var configuration = new ConfigurationBuilder ( ) . AddInMemoryCollection ( appsettings ) . Build ( ) ;
126+ var services = new ServiceCollection ( )
127+ . AddLogging ( builder =>
128+ {
129+ builder . AddConfiguration ( configuration . GetSection ( "Logging" ) ) ;
130+ builder . AddDynamicConsole ( configuration ) ;
131+ } )
132+ . BuildServiceProvider ( ) ;
133+
134+ // act
135+ var logger = services . GetService ( typeof ( ILogger < DynamicLoggingBuilderTest > ) ) as ILogger < DynamicLoggingBuilderTest > ;
136+
137+ // assert
138+ Assert . NotNull ( logger ) ;
139+ Assert . True ( ( logger ) . IsEnabled ( LogLevel . Warning ) , "Warning level should be enabled" ) ;
140+ Assert . False ( ( logger ) . IsEnabled ( LogLevel . Debug ) , "Debug level should NOT be enabled" ) ;
141+ Assert . False ( ( logger ) . IsEnabled ( LogLevel . Trace ) , "Trace level should not be enabled yet" ) ;
142+
143+ // change the log level and confirm it worked
144+ var provider = services . GetRequiredService ( typeof ( ILoggerProvider ) ) as DynamicLoggerProvider ;
145+ provider . SetLogLevel ( "Steeltoe.Extensions.Logging.Test" , LogLevel . Trace ) ;
146+ Assert . True ( ( logger ) . IsEnabled ( LogLevel . Trace ) , "Trace level should have been enabled" ) ;
147+ }
92148 }
93149}
0 commit comments