public static void Handle(bool isProduction, ILoggingBuilder builder, string awsLogGroupName) { builder.ClearProviders(); if (!isProduction) { builder.AddConsole(); } if (string.IsNullOrEmpty(awsLogGroupName)) { return; } using var cloudwatchLogsClient = new AmazonCloudWatchLogsClient(); bool logGroupExists = LogGroupExists(cloudwatchLogsClient, awsLogGroupName); if (!logGroupExists) { int days = isProduction ? 30 : 1; CreateLogGroup(cloudwatchLogsClient, awsLogGroupName, days); } var awsLoggerConfig = new AWSLoggerConfig { LogGroup = awsLogGroupName, BatchPushInterval = isProduction ? TimeSpan.FromMinutes(1) : TimeSpan.FromSeconds(2), DisableLogGroupCreation = true, LogStreamNamePrefix = string.Empty }; builder.AddAWSProvider(awsLoggerConfig, LogLevel.Information); Console.WriteLine($"Will write logs to: {awsLogGroupName}"); }
public static void Configure(ILoggingBuilder loggingBuilder, IConfiguration configuration) { var configSection = configuration.GetAWSLoggingConfigSection(); if (!string.IsNullOrEmpty(configSection?.Config?.LogGroup)) { configSection.Config.ProfilesLocation = configuration.GetSection("AWS.Logging")?.GetValue <string>("ProfilesLocation"); loggingBuilder.AddAWSProvider(configSection); } }
public virtual void ConfigureLogging(HostBuilderContext context, ILoggingBuilder builder) { builder.AddConfiguration(context.Configuration.GetSection("Logging")); if (context.HostingEnvironment.IsDevelopment()) { builder.AddConsole(); } else { builder.AddAWSProvider(context.Configuration.GetAWSLoggingConfigSection()); builder.SetMinimumLevel(LogLevel.Debug); } }