public void LoggingFilterHelper_Tests(string hostJsonContent, bool?verboseLogging, LogLevel expectedDefaultLogLevel) { try { FileSystemHelpers.WriteAllTextToFile(_hostJsonFilePath, hostJsonContent); var configuration = Utilities.BuildHostJsonConfigutation(_hostOptions); LoggingFilterHelper loggingFilterHelper = new LoggingFilterHelper(configuration, verboseLogging); if (verboseLogging == null) { Assert.False(loggingFilterHelper.VerboseLogging); } Assert.Equal(loggingFilterHelper.DefaultLogLevel, expectedDefaultLogLevel); if (hostJsonContent.Contains("Default")) { Assert.Equal(loggingFilterHelper.DefaultLogLevel, loggingFilterHelper.UserLogDefaultLogLevel); Assert.Equal(loggingFilterHelper.DefaultLogLevel, loggingFilterHelper.SystemLogDefaultLogLevel); } else { Assert.Equal(LogLevel.Information, loggingFilterHelper.UserLogDefaultLogLevel); if (verboseLogging.HasValue && verboseLogging.Value) { Assert.Equal(LogLevel.Information, loggingFilterHelper.SystemLogDefaultLogLevel); } else { Assert.Equal(LogLevel.Warning, loggingFilterHelper.SystemLogDefaultLogLevel); } } } finally { DeleteIfExists(_workerDir); } }
public ColoredConsoleLogger(string category, LoggingFilterHelper loggingFilterHelper, LoggerFilterOptions loggerFilterOptions) { _category = category; _loggerFilterOptions = loggerFilterOptions ?? throw new ArgumentNullException(nameof(loggerFilterOptions)); _loggingFilterHelper = loggingFilterHelper ?? throw new ArgumentNullException(nameof(loggingFilterHelper)); _verboseErrors = StaticSettings.IsDebug; }
public void LoggingFilterHelper_Tests(string categoryKey, bool?verboseLogging, LogLevel expectedDefaultLogLevel) { var settings = new Dictionary <string, string>(); if (!string.IsNullOrEmpty(categoryKey)) { settings.Add(ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "logging", "loglevel", categoryKey), expectedDefaultLogLevel.ToString()); } var testConfiguration = TestUtils.CreateSetupWithConfiguration(settings); LoggingFilterHelper loggingFilterHelper = new LoggingFilterHelper(testConfiguration, verboseLogging); if (verboseLogging == null) { Assert.False(loggingFilterHelper.VerboseLogging); } if (!string.IsNullOrEmpty(categoryKey) && categoryKey.Equals("Default", StringComparison.OrdinalIgnoreCase)) { Assert.Equal(expectedDefaultLogLevel, loggingFilterHelper.UserLogDefaultLogLevel); Assert.Equal(expectedDefaultLogLevel, loggingFilterHelper.SystemLogDefaultLogLevel); } else { Assert.Equal(LogLevel.Information, loggingFilterHelper.UserLogDefaultLogLevel); if (verboseLogging.HasValue && verboseLogging.Value) { Assert.Equal(LogLevel.Information, loggingFilterHelper.SystemLogDefaultLogLevel); } else { Assert.Equal(LogLevel.Warning, loggingFilterHelper.SystemLogDefaultLogLevel); } } }
public Startup(WebHostBuilderContext builderContext, ScriptApplicationHostOptions hostOptions, string corsOrigins, bool corsCredentials, bool enableAuth, LoggingFilterHelper loggingFilterHelper) { _builderContext = builderContext; _hostOptions = hostOptions; _enableAuth = enableAuth; _loggingFilterHelper = loggingFilterHelper; if (!string.IsNullOrEmpty(corsOrigins)) { _corsOrigins = corsOrigins.Split(',', StringSplitOptions.RemoveEmptyEntries); _corsCredentials = corsCredentials; } }
public void IsEnabled_Tests(string hostJsonContent, string category, LogLevel logLevel, bool expected) { try { FileSystemHelpers.WriteAllTextToFile(_hostJsonFilePath, hostJsonContent); var configuration = Utilities.BuildHostJsonConfigutation(_hostOptions); LoggingFilterHelper loggingFilterHelper = new LoggingFilterHelper(configuration, false); Assert.Equal(expected, loggingFilterHelper.IsEnabled(category, logLevel)); } finally { DeleteIfExists(_workerDir); } }
private async Task <IWebHost> BuildWebHost(ScriptApplicationHostOptions hostOptions, Uri listenAddress, Uri baseAddress, X509Certificate2 certificate) { IDictionary <string, string> settings = await GetConfigurationSettings(hostOptions.ScriptPath, baseAddress); settings.AddRange(LanguageWorkerHelper.GetWorkerConfiguration(LanguageWorkerSetting)); UpdateEnvironmentVariables(settings); LoggingFilterHelper loggingFilterHelper = new LoggingFilterHelper(_hostJsonConfig, VerboseLogging); var defaultBuilder = Microsoft.AspNetCore.WebHost.CreateDefaultBuilder(Array.Empty <string>()); if (UseHttps) { defaultBuilder .UseKestrel(options => { options.Listen(IPAddress.Any, listenAddress.Port, listenOptins => { listenOptins.UseHttps(certificate); }); }); } return(defaultBuilder .UseSetting(WebHostDefaults.ApplicationKey, typeof(Startup).Assembly.GetName().Name) .UseUrls(listenAddress.ToString()) .ConfigureAppConfiguration(configBuilder => { configBuilder.AddEnvironmentVariables(); }) .ConfigureLogging(loggingBuilder => { loggingBuilder.ClearProviders(); loggingBuilder.Services.AddSingleton <ILoggerProvider>(p => { //Cache LoggerFilterOptions to be used by the logger to filter logs based on content var filterOptions = p.GetService <IOptions <LoggerFilterOptions> >().Value; // Set min level to SystemLogDefaultLogLevel. filterOptions.MinLevel = loggingFilterHelper.SystemLogDefaultLogLevel; return new ColoredConsoleLoggerProvider(loggingFilterHelper, filterOptions); }); // This is needed to filter system logs only for known categories loggingBuilder.AddDefaultWebJobsFilters <ColoredConsoleLoggerProvider>(LogLevel.Trace); }) .ConfigureServices((context, services) => services.AddSingleton <IStartup>(new Startup(context, hostOptions, CorsOrigins, CorsCredentials, EnableAuth, loggingFilterHelper))) .Build()); }
public void IsCI_Tests(bool isCiEnv, bool?verboseLogging, bool expected) { try { if (isCiEnv) { Environment.SetEnvironmentVariable(LoggingFilterHelper.Ci_Build_Number, "90l99"); } var testConfiguration = TestUtils.CreateSetupWithConfiguration(null); LoggingFilterHelper loggingFilterHelper = new LoggingFilterHelper(testConfiguration, verboseLogging); Assert.Equal(expected, loggingFilterHelper.IsCiEnvironment(verboseLogging.HasValue)); } finally { Environment.SetEnvironmentVariable(LoggingFilterHelper.Ci_Build_Number, ""); } }
public void IsCI_Tests(bool isCiEnv, bool?verboseLogging, bool expected) { try { if (isCiEnv) { Environment.SetEnvironmentVariable(LoggingFilterHelper.Ci_Build_Number, "90l99"); } string defaultJson = "{\"version\": \"2.0\"}"; FileSystemHelpers.WriteAllTextToFile(_hostJsonFilePath, defaultJson); var configuration = Utilities.BuildHostJsonConfigutation(_hostOptions); LoggingFilterHelper loggingFilterHelper = new LoggingFilterHelper(configuration, verboseLogging); Assert.Equal(expected, loggingFilterHelper.IsCiEnvironment(verboseLogging.HasValue)); Environment.SetEnvironmentVariable(LoggingFilterHelper.Ci_Build_Number, ""); } finally { DeleteIfExists(_workerDir); } }
private async Task <IWebHost> BuildWebHost(ScriptApplicationHostOptions hostOptions, Uri listenAddress, Uri baseAddress, X509Certificate2 certificate) { IDictionary <string, string> settings = await GetConfigurationSettings(hostOptions.ScriptPath, baseAddress); settings.AddRange(LanguageWorkerHelper.GetWorkerConfiguration(LanguageWorkerSetting)); UpdateEnvironmentVariables(settings); LoggingFilterHelper loggingFilterHelper = new LoggingFilterHelper(_hostJsonConfig, VerboseLogging); var defaultBuilder = Microsoft.AspNetCore.WebHost.CreateDefaultBuilder(Array.Empty <string>()); if (UseHttps) { defaultBuilder .UseKestrel(options => { options.Listen(IPAddress.Any, listenAddress.Port, listenOptins => { listenOptins.UseHttps(certificate); }); }); } return(defaultBuilder .UseSetting(WebHostDefaults.ApplicationKey, typeof(Startup).Assembly.GetName().Name) .UseUrls(listenAddress.ToString()) .ConfigureAppConfiguration(configBuilder => { configBuilder.AddEnvironmentVariables(); }) .ConfigureLogging(loggingBuilder => { loggingBuilder.ClearProviders(); loggingFilterHelper.AddConsoleLoggingProvider(loggingBuilder); }) .ConfigureServices((context, services) => services.AddSingleton <IStartup>(new Startup(context, hostOptions, CorsOrigins, CorsCredentials, EnableAuth, loggingFilterHelper))) .Build()); }
public LoggingBuilder(LoggingFilterHelper loggingFilterHelper) { _loggingFilterHelper = loggingFilterHelper; }
public ColoredConsoleLoggerProvider(LoggingFilterHelper loggingFilterHelper) { _loggingFilterHelper = loggingFilterHelper; }
public ColoredConsoleLogger(string category, LoggingFilterHelper loggingFilterHelper) { _category = category; _loggingFilterHelper = loggingFilterHelper; _verboseErrors = StaticSettings.IsDebug; }
public ColoredConsoleLoggerProvider(LoggingFilterHelper loggingFilterHelper, LoggerFilterOptions loggerFilterOptions) { _loggerFilterOptions = loggerFilterOptions ?? throw new ArgumentNullException(nameof(loggerFilterOptions)); _loggingFilterHelper = loggingFilterHelper ?? throw new ArgumentNullException(nameof(loggingFilterHelper)); }