コード例 #1
0
        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}");
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }