/// <summary>
        /// Main method triggered at startup.
        /// </summary>
        static void Main(string[] args)
        {
            try
            {
                // Get env settings file URL
                string envSettingsString = _httpClient.GetStringAsync(Environment.GetEnvironmentVariable("ENV_SETTINGS_URL")).ContinueWith((r) =>
                {
                    return(r.Result);
                }).Result;
                _envSettings = JsonConvert.DeserializeObject <EnvSettings>(envSettingsString);

                Console.WriteLine($"Retrieved env settings successfully");

                // Initialize logger
                var logLevelProperty = _envSettings.Properties.Where(x => x.Name == "LogLevel").FirstOrDefault();
                if (logLevelProperty == null)
                {
                    throw new Exception("Unable to find LogLevel property in env settings");
                }

                Console.WriteLine($"Setting log level to {logLevelProperty.Value}");
                var logLevel = (LogLevel)Enum.Parse(typeof(LogLevel), logLevelProperty.Value, true);
                var consoleLoggerConfiguration = new ConsoleLoggerConfiguration(logLevel: logLevel);
                _loggerFactory = ConsoleLoggerExtensions.AddConsoleLogger(new LoggerFactory(), consoleLoggerConfiguration);
                _consoleLogger = _loggerFactory.CreateLogger <ConsoleLogger>();

                _consoleLogger.LogInformation("Kicking off Main method");

                // Use Timer trigger instead
                var timerIntervalProperty = _envSettings.Properties.Where(x => x.Name == "TimerIntervalInSeconds").FirstOrDefault();
                if (timerIntervalProperty == null)
                {
                    throw new Exception("Unable to find TimerIntervalInSeconds in env settings");
                }

                SetTimer(Convert.ToInt32(timerIntervalProperty.Value) * 1000);

                // Initialize module client
                InitializeModuleClient().Wait();

                // Wait until the app unloads or is cancelled
                var cts = new CancellationTokenSource();
                AssemblyLoadContext.Default.Unloading += (ctx) => cts.Cancel();
                Console.CancelKeyPress += (sender, cpe) => cts.Cancel();
                WhenCancelled(cts.Token).Wait();
            }
            catch (Exception e)
            {
                Console.WriteLine($"Main caught an exception: {e}");
            }
        }
        public void AdditionalTests(IWebHostBuilder webHostBuilder, IServiceCollection serviceDescriptors)
        {
            var factory = new MyLoggerFactory();

//                        ^^^^^^^^^^^^^^^^^^^^^
            new MyLoggerFactory("data"); // Noncompliant

            // Calling extension methods as static methods
            WebHostBuilderExtensions.ConfigureLogging(webHostBuilder, (Action <ILoggingBuilder>)null);         // Noncompliant
            LoggingServiceCollectionExtensions.AddLogging(serviceDescriptors, (Action <ILoggingBuilder>)null); // Noncompliant

            AzureAppServicesLoggerFactoryExtensions.AddAzureWebAppDiagnostics(factory, null);                  // Noncompliant
            ConsoleLoggerExtensions.AddConsole(factory);                                                       // Noncompliant
            DebugLoggerFactoryExtensions.AddDebug(factory);                                                    // Noncompliant
            EventLoggerFactoryExtensions.AddEventLog(factory);                                                 // Noncompliant
            EventSourceLoggerFactoryExtensions.AddEventSourceLogger(factory);                                  // Noncompliant
        }