Пример #1
0
        public static LoggerConfiguration ElasticsearchSink(this LoggerConfiguration loggerSinkConfiguration, IConfiguration configuration)
        {
            var elasticsearchOptions = configuration.GetOptions <ElasticsearchOptions>("elasticsearch");

            if (elasticsearchOptions.Enabled)
            {
                loggerSinkConfiguration.WriteTo.Elasticsearch(
                    new ElasticsearchSinkOptions(new Uri(elasticsearchOptions.Uri))
                {
                    MinimumLogEventLevel        = LogEventLevel.Debug,
                    AutoRegisterTemplate        = true,
                    OverwriteTemplate           = true,
                    DetectElasticsearchVersion  = true,
                    AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,
                    RegisterTemplateFailure     = RegisterTemplateRecovery.FailSink,
                    FailureCallback             = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate),
                    EmitEventFailure            = EmitEventFailureHandling.WriteToSelfLog |
                                                  EmitEventFailureHandling.WriteToFailureSink |
                                                  EmitEventFailureHandling.RaiseCallback,
                    ModifyConnectionSettings = connectionConfiguration =>
                                               elasticsearchOptions.BasicAuthEnabled
                                ? connectionConfiguration.BasicAuthentication(elasticsearchOptions.Username,
                                                                              elasticsearchOptions.Password)
                                : connectionConfiguration
                });
            }

            return(loggerSinkConfiguration);
        }