@@ -256,7 +256,7 @@ public void LoggerProviders_ApplicationInsights()
256256 }
257257
258258 [ Fact ]
259- public void LoggerProviders_AzureMonitor ( )
259+ public void LoggerProviders_AzureMonitor_NoAppSetting ( )
260260 {
261261 IHost host = new HostBuilder ( )
262262 . ConfigureDefaultTestWebScriptHost ( )
@@ -275,7 +275,43 @@ public void LoggerProviders_AzureMonitor()
275275 loggerProviders . OfType < HostFileLoggerProvider > ( ) . Single ( ) ;
276276 loggerProviders . OfType < FunctionFileLoggerProvider > ( ) . Single ( ) ;
277277 loggerProviders . OfType < UserLogMetricsLoggerProvider > ( ) . Single ( ) ;
278- loggerProviders . OfType < AzureMonitorDiagnosticLoggerProvider > ( ) . Single ( ) ;
278+ loggerProviders . OfType < NullLoggerProvider > ( ) . Single ( ) ;
279+ }
280+
281+ [ Theory ]
282+ [ InlineData ( "1" , false ) ] // only true/false are parsed
283+ [ InlineData ( "true" , true ) ]
284+ [ InlineData ( "false" , false ) ]
285+ [ InlineData ( "nonsense" , false ) ]
286+ public void LoggerProviders_AzureMonitor_AppSetting ( string appSettingValue , bool expected )
287+ {
288+ IHost host = new HostBuilder ( )
289+ . ConfigureDefaultTestWebScriptHost ( )
290+ . ConfigureServices ( s =>
291+ {
292+ TestEnvironment environment = new TestEnvironment ( ) ;
293+ environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteHostName , "something.azurewebsites.net" ) ;
294+ environment . SetEnvironmentVariable ( "AZURE_MONITOR_ENABLED" , appSettingValue ) ;
295+ s . AddSingleton < IEnvironment > ( environment ) ;
296+ } )
297+ . Build ( ) ;
298+
299+ IEnumerable < ILoggerProvider > loggerProviders = host . Services . GetService < IEnumerable < ILoggerProvider > > ( ) ;
300+
301+ Assert . Equal ( 5 , loggerProviders . Count ( ) ) ;
302+ loggerProviders . OfType < SystemLoggerProvider > ( ) . Single ( ) ;
303+ loggerProviders . OfType < HostFileLoggerProvider > ( ) . Single ( ) ;
304+ loggerProviders . OfType < FunctionFileLoggerProvider > ( ) . Single ( ) ;
305+ loggerProviders . OfType < UserLogMetricsLoggerProvider > ( ) . Single ( ) ;
306+
307+ if ( expected )
308+ {
309+ loggerProviders . OfType < AzureMonitorDiagnosticLoggerProvider > ( ) . Single ( ) ;
310+ }
311+ else
312+ {
313+ loggerProviders . OfType < NullLoggerProvider > ( ) . Single ( ) ;
314+ }
279315 }
280316 }
281317}
0 commit comments