From c6880e7530b67ed8c2722bd5003d5d2c46bacded Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=86=9B?= <510423039@qq.com> Date: Wed, 12 Jan 2022 21:25:09 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=95=20=E8=B0=83=E6=95=B4Serilog?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aspnet-core/Directory.Build.props | 8 ++--- .../AbpProHttpApiHostModule.cs | 13 ++++----- .../Extensions/SerilogToEsExtensions.cs | 10 ++++++- .../Lion.AbpPro.HttpApi.Host.csproj | 1 + .../host/Lion.AbpPro.HttpApi.Host/Program.cs | 29 ++++--------------- .../Lion.AbpPro.HttpApi.Host/appsettings.json | 22 +++++++------- .../MVC/Filters/ResultExceptionFilter.cs | 2 +- 7 files changed, 37 insertions(+), 48 deletions(-) diff --git a/aspnet-core/Directory.Build.props b/aspnet-core/Directory.Build.props index 08afe423..fdefe3be 100644 --- a/aspnet-core/Directory.Build.props +++ b/aspnet-core/Directory.Build.props @@ -1,7 +1,7 @@  - 5.0.0 + 5.0.1 6.0.0-preview-153999281 6.0.0 6.0.0-preview.4.21253.7 @@ -13,12 +13,12 @@ 2.2.0 2.10.0 3.0.1 - 1.4.0 + 1.5.0 5.0.0 - 3.1.1 + 4.0.0 4.1.0 7.0.0 - 3.1.0 + 3.3.0 8.4.1 13.0.1 7.15.1 diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs index 5bde6c93..b4763dbe 100644 --- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs +++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs @@ -45,20 +45,17 @@ namespace Lion.AbpPro { [DependsOn( typeof(AbpProHttpApiModule), - typeof(AbpAutofacModule), - typeof(AbpCachingStackExchangeRedisModule), + typeof(SharedHostingMicroserviceModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule), - typeof(AbpProApplicationModule), typeof(AbpProEntityFrameworkCoreModule), + typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpAspNetCoreSerilogModule), - typeof(AbpSwashbuckleModule), typeof(AbpAccountWebModule), - typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpBackgroundJobsHangfireModule), + typeof(AbpProApplicationModule), typeof(AbpProAbpCapModule), - typeof(AbpAspNetCoreMultiTenancyModule), - typeof(SharedHostingMicroserviceModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule) + typeof(AbpAspNetCoreMvcUiBasicThemeModule), + typeof(AbpCachingStackExchangeRedisModule) )] public class AbpProHttpApiHostModule : AbpModule { diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/SerilogToEsExtensions.cs b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/SerilogToEsExtensions.cs index 41be70dd..85227dc4 100644 --- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/SerilogToEsExtensions.cs +++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/SerilogToEsExtensions.cs @@ -2,11 +2,13 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Serilog; using Serilog.Exceptions; +using Serilog.Exceptions.Core; using Serilog.Sinks.Elasticsearch; using System; using System.IO; using System.Text; using System.Threading.Tasks; +using Microsoft.Extensions.Hosting; namespace Lion.AbpPro.Extensions { @@ -14,9 +16,15 @@ namespace Lion.AbpPro.Extensions { public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration) { - + // 默认读取 configuration 中 "Serilog" 节点下的配置 + loggerConfiguration.ReadFrom.Configuration(configuration) + .ReadFrom.Configuration(configuration) + .Enrich.FromLogContext() + .WriteTo.Console(); + var writeToElasticSearch = configuration.GetValue("ElasticSearch:Enabled", false); + // LogToElasticSearch:Enabled = true 才输出至ES if (!writeToElasticSearch) return; diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj index 97588f47..8076c925 100644 --- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj +++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj @@ -29,6 +29,7 @@ + diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs index 4f650da3..053d760b 100644 --- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs +++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs @@ -13,27 +13,8 @@ namespace Lion.AbpPro { public static void Main(string[] args) { - try - { - var configuration = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? ""}.json", true) - .Build(); - - Log.Logger = new LoggerConfiguration() - .ReadFrom.Configuration(configuration) - .Enrich.FromLogContext() - .CreateLogger(); - CreateHostBuilder(args).Build().Run(); - } - catch (Exception ex) - { - Log.Fatal(ex, "Host terminated unexpectedly!"); - } - finally - { - Log.CloseAndFlush(); - } + CreateHostBuilder(args).Build().Run(); + } private static IHostBuilder CreateHostBuilder(string[] args) => @@ -45,7 +26,9 @@ namespace Lion.AbpPro }) .UseSerilog((context, loggerConfiguration) => { - SerilogToEsExtensions.SetSerilogConfiguration(loggerConfiguration,context.Configuration); + SerilogToEsExtensions.SetSerilogConfiguration( + loggerConfiguration, + context.Configuration); }).UseAutofac(); } -} \ No newline at end of file +} diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json index 870d93c5..8c5c832a 100644 --- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json +++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json @@ -1,18 +1,18 @@ { "Serilog": { "Using": [ - "Serilog.Sinks.Console", - "Serilog.Sinks.RollingFile" + "Serilog.Sinks.Console" + ], "MinimumLevel": { - "Default": "Information", + "Default": "Debug", "Override": { - "Microsoft": "Information", - "Volo.Abp": "Information", - "Hangfire": "Information", - "DotNetCore.CAP": "Information", - "Serilog.AspNetCore": "Information", - "Microsoft.EntityFrameworkCore": "Information" + "Microsoft": "Information", + "Volo.Abp": "Information", + "Hangfire": "Information", + "DotNetCore.CAP": "Information", + "Serilog.AspNetCore": "Information", + "Microsoft.EntityFrameworkCore": "Information" } }, "WriteTo": [ @@ -54,10 +54,10 @@ "ElasticSearch": { "Enabled": "false", "Url": "http://es.cn", - "IndexFormat": "companyname.projectname.development.{0:yyyy.MM.dd}", + "IndexFormat": "Lion.AbpPro.development.{0:yyyy.MM.dd}", "UserName": "elastic", "Password": "aVVhjQ95RP7nbwNy", - "SearchIndexFormat": "companyname.projectname.development*" + "SearchIndexFormat": "Lion.AbpPro.development*" }, "HttpClient": { "Sts": { diff --git a/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/MVC/Filters/ResultExceptionFilter.cs b/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/MVC/Filters/ResultExceptionFilter.cs index 1e70e371..d85efb65 100644 --- a/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/MVC/Filters/ResultExceptionFilter.cs +++ b/aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/MVC/Filters/ResultExceptionFilter.cs @@ -77,7 +77,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters var statusCode = (int)_statusCodeFinder.GetStatusCode(context.HttpContext, context.Exception); context.HttpContext.Response.StatusCode = 200; - var remoteServiceErrorInfo = _errorInfoConverter.Convert(context.Exception, _exceptionHandlingOptions.SendExceptionsDetailsToClients); + var remoteServiceErrorInfo = _errorInfoConverter.Convert(context.Exception, options => { options.SendExceptionsDetailsToClients = _exceptionHandlingOptions.SendExceptionsDetailsToClients; }); remoteServiceErrorInfo.Code = context.HttpContext.TraceIdentifier; remoteServiceErrorInfo.Message = SimplifyMessage(context.Exception); var result = new WrapResult();