澎湖县网站建设_网站建设公司_关键词排名_seo优化
2026/1/17 18:55:19 网站建设 项目流程

 

{"app": {"name": "order-service"},"elk": {"enabled": false,"url": "http://10.89.24.148:9200","indexFormat": "products-service-{0:yyyy.MM.dd}","basicAuthEnabled": false,"username": "user","password": "secret"},"serilog": {"consoleEnabled": true,"level": "information"},"seq": {"enabled": true,"url": "http://10.89.24.148:5341","token": "secret"},

 

using Microsoft.AspNetCore.Hosting;
using Serilog;
using Serilog.Events;
using Serilog.Sinks.Elasticsearch;
using System;namespace Common.Logging
{public static class Extensions{public static IWebHostBuilder UseLogging(this IWebHostBuilder webHostBuilder, string applicationName = null)=> webHostBuilder.UseSerilog((context, loggerConfiguration) =>{var appOptions = context.Configuration.GetOptions<AppOptions>("app");var elkOptions = context.Configuration.GetOptions<ElkOptions>("elk");var seqOptions = context.Configuration.GetOptions<SeqOptions>("seq");var serilogOptions = context.Configuration.GetOptions<SerilogOptions>("serilog");if (!Enum.TryParse<LogEventLevel>(serilogOptions.Level, true, out var level)){level = LogEventLevel.Information;}applicationName = string.IsNullOrWhiteSpace(applicationName) ? appOptions.Name : applicationName;loggerConfiguration.Enrich.FromLogContext().MinimumLevel.Is(level).Enrich.WithProperty("Environment", context.HostingEnvironment.EnvironmentName).Enrich.WithProperty("ApplicationName", applicationName);Configure(loggerConfiguration, level, elkOptions, seqOptions, serilogOptions);});private static void Configure(LoggerConfiguration loggerConfiguration, LogEventLevel level,ElkOptions elkOptions, SeqOptions seqOptions, SerilogOptions serilogOptions){if (elkOptions.Enabled){loggerConfiguration.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elkOptions.Url)){MinimumLogEventLevel = level,AutoRegisterTemplate = true,AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6,IndexFormat = string.IsNullOrWhiteSpace(elkOptions.IndexFormat)? "logstash-{0:yyyy.MM.dd}": elkOptions.IndexFormat,ModifyConnectionSettings = connectionConfiguration =>elkOptions.BasicAuthEnabled? connectionConfiguration.BasicAuthentication(elkOptions.Username, elkOptions.Password): connectionConfiguration});}if (seqOptions.Enabled){loggerConfiguration.WriteTo.Seq(seqOptions.Url, apiKey: seqOptions.ApiKey);}if (serilogOptions.ConsoleEnabled){loggerConfiguration.WriteTo.Console();}}}
}

 

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询