private static void AddSinks(LoggerConfiguration config, TitanOptions options, string contentRootPath) { config .ConfigureConsole(options) .ConfigureFile(options.File, contentRootPath) .ConfigureLoki(options.Loki, options.DynamicDefaultLevel) .ConfigureGrayLog(options.Graylog, options.DynamicDefaultLevel); }
internal static LoggerConfiguration BuildDefaultConfig(LoggerConfiguration config, TitanOptions options, ApplicationOptions appOptions, string contentRootPath) { ConfigureMinimumLevels(config, options); ConfigureEnrich(config, appOptions); AddSinks(config, options, contentRootPath); return(config); }
public static IHostBuilder UseTitan(this IHostBuilder hostBuilder) { return(hostBuilder.UseSerilog((context, config) => { ApplicationOptions appOptions = context.Configuration.GetApplicationOptions(); TitanOptions options = GetOptions(context.Configuration); LoggingDefaultConfig.BuildDefaultConfig(config, options, appOptions, AppDomain.CurrentDomain.BaseDirectory); })); }
private static void ConfigureMinimumLevels(LoggerConfiguration config, TitanOptions options) { if (options.DynamicDefaultLevel) { config.MinimumLevel.ControlledBy(new LoggingLevelSwitch(TitanLibHelper.GetLogLevel(options.DefaultLevel))); } else { config.MinimumLevel.Is(TitanLibHelper.GetLogLevel(options.DefaultLevel)); } config .MinimumLevel.Override("System", TitanLibHelper.GetLogLevel(options.Overrides.System)) .MinimumLevel.Override("Microsoft", TitanLibHelper.GetLogLevel(options.Overrides.Microsoft)) .MinimumLevel.Override("Microsoft.AspNetCore", TitanLibHelper.GetLogLevel(options.Overrides.AspNetCore)) .MinimumLevel.Override("Microsoft.Hosting.Lifetime", TitanLibHelper.GetLogLevel(options.Overrides.MicrosoftHostingLifetime)); foreach (string[] item in options.Overrides.Custom.Select(s => s.Split(":"))) { config.MinimumLevel.Override(item[0], TitanLibHelper.GetLogLevel(item[1])); } }
internal static LoggerConfiguration ConfigureConsole(this LoggerConfiguration configuration, TitanOptions options) { if (options.Console is null || options.Console.Enabled is false) { return(configuration); } configuration.WriteTo.Console(outputTemplate: options.Console.OutputTemplate, theme: options.Console.GetConsoleTheme()); return(configuration); }