Browse Source

👕 调整Serilog设置

pull/27/head 5.0.1.3
王军 4 years ago
parent
commit
c6880e7530
  1. 8
      aspnet-core/Directory.Build.props
  2. 13
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs
  3. 10
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/SerilogToEsExtensions.cs
  4. 1
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj
  5. 29
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs
  6. 22
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json
  7. 2
      aspnet-core/shared/Lion.AbpPro.Shared.Hosting.Microservices/Microsoft/AspNetCore/MVC/Filters/ResultExceptionFilter.cs

8
aspnet-core/Directory.Build.props

@ -1,7 +1,7 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<AbpPackageVersion>5.0.0</AbpPackageVersion> <AbpPackageVersion>5.0.1</AbpPackageVersion>
<DotNetCoreCAPVersion>6.0.0-preview-153999281</DotNetCoreCAPVersion> <DotNetCoreCAPVersion>6.0.0-preview-153999281</DotNetCoreCAPVersion>
<MicrosoftVersion>6.0.0</MicrosoftVersion> <MicrosoftVersion>6.0.0</MicrosoftVersion>
<SystemComponentModelAnnotationsVersion>6.0.0-preview.4.21253.7</SystemComponentModelAnnotationsVersion> <SystemComponentModelAnnotationsVersion>6.0.0-preview.4.21253.7</SystemComponentModelAnnotationsVersion>
@ -13,12 +13,12 @@
<MicrosoftAspNetCoreHttpAbstractionsVersion>2.2.0</MicrosoftAspNetCoreHttpAbstractionsVersion> <MicrosoftAspNetCoreHttpAbstractionsVersion>2.2.0</MicrosoftAspNetCoreHttpAbstractionsVersion>
<SerilogVersion>2.10.0</SerilogVersion> <SerilogVersion>2.10.0</SerilogVersion>
<SerilogExtensionsLoggingVersion>3.0.1</SerilogExtensionsLoggingVersion> <SerilogExtensionsLoggingVersion>3.0.1</SerilogExtensionsLoggingVersion>
<SerilogSinksAsyncVersion>1.4.0</SerilogSinksAsyncVersion> <SerilogSinksAsyncVersion>1.5.0</SerilogSinksAsyncVersion>
<SerilogSinksFileVersion>5.0.0</SerilogSinksFileVersion> <SerilogSinksFileVersion>5.0.0</SerilogSinksFileVersion>
<SerilogSinksConsoleVersion>3.1.1</SerilogSinksConsoleVersion> <SerilogSinksConsoleVersion>4.0.0</SerilogSinksConsoleVersion>
<SerilogAspNetCoreVersion>4.1.0</SerilogAspNetCoreVersion> <SerilogAspNetCoreVersion>4.1.0</SerilogAspNetCoreVersion>
<SerilogExceptionsVersion>7.0.0</SerilogExceptionsVersion> <SerilogExceptionsVersion>7.0.0</SerilogExceptionsVersion>
<SerilogSettingsConfigurationVersion>3.1.0</SerilogSettingsConfigurationVersion> <SerilogSettingsConfigurationVersion>3.3.0</SerilogSettingsConfigurationVersion>
<SerilogSinksElasticsearchVersion>8.4.1</SerilogSinksElasticsearchVersion> <SerilogSinksElasticsearchVersion>8.4.1</SerilogSinksElasticsearchVersion>
<NewtonsoftJsonVersion>13.0.1</NewtonsoftJsonVersion> <NewtonsoftJsonVersion>13.0.1</NewtonsoftJsonVersion>
<NESTVersion>7.15.1</NESTVersion> <NESTVersion>7.15.1</NESTVersion>

13
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs

@ -45,20 +45,17 @@ namespace Lion.AbpPro
{ {
[DependsOn( [DependsOn(
typeof(AbpProHttpApiModule), typeof(AbpProHttpApiModule),
typeof(AbpAutofacModule), typeof(SharedHostingMicroserviceModule),
typeof(AbpCachingStackExchangeRedisModule),
typeof(AbpAspNetCoreMvcUiMultiTenancyModule), typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
typeof(AbpProApplicationModule),
typeof(AbpProEntityFrameworkCoreModule), typeof(AbpProEntityFrameworkCoreModule),
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpAspNetCoreSerilogModule), typeof(AbpAspNetCoreSerilogModule),
typeof(AbpSwashbuckleModule),
typeof(AbpAccountWebModule), typeof(AbpAccountWebModule),
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpBackgroundJobsHangfireModule), typeof(AbpBackgroundJobsHangfireModule),
typeof(AbpProApplicationModule),
typeof(AbpProAbpCapModule), typeof(AbpProAbpCapModule),
typeof(AbpAspNetCoreMultiTenancyModule), typeof(AbpAspNetCoreMvcUiBasicThemeModule),
typeof(SharedHostingMicroserviceModule), typeof(AbpCachingStackExchangeRedisModule)
typeof(AbpAspNetCoreMvcUiBasicThemeModule)
)] )]
public class AbpProHttpApiHostModule : AbpModule public class AbpProHttpApiHostModule : AbpModule
{ {

10
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/SerilogToEsExtensions.cs

@ -2,11 +2,13 @@ using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Serilog; using Serilog;
using Serilog.Exceptions; using Serilog.Exceptions;
using Serilog.Exceptions.Core;
using Serilog.Sinks.Elasticsearch; using Serilog.Sinks.Elasticsearch;
using System; using System;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
namespace Lion.AbpPro.Extensions namespace Lion.AbpPro.Extensions
{ {
@ -14,9 +16,15 @@ namespace Lion.AbpPro.Extensions
{ {
public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration) 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); var writeToElasticSearch = configuration.GetValue("ElasticSearch:Enabled", false);
// LogToElasticSearch:Enabled = true 才输出至ES // LogToElasticSearch:Enabled = true 才输出至ES
if (!writeToElasticSearch) if (!writeToElasticSearch)
return; return;

1
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj

@ -29,6 +29,7 @@
<PackageReference Include="Serilog.Sinks.Console" Version="$(SerilogSinksConsoleVersion)" /> <PackageReference Include="Serilog.Sinks.Console" Version="$(SerilogSinksConsoleVersion)" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="$(SerilogSinksElasticsearchVersion)" /> <PackageReference Include="Serilog.Sinks.Elasticsearch" Version="$(SerilogSinksElasticsearchVersion)" />
<PackageReference Include="Serilog.Sinks.File" Version="$(SerilogSinksFileVersion)" /> <PackageReference Include="Serilog.Sinks.File" Version="$(SerilogSinksFileVersion)" />
<PackageReference Include="Serilog.Sinks.Async" Version="$(SerilogSinksAsyncVersion)" />
<PackageReference Include="Hangfire.MySqlStorage" Version="$(HangfireMySqlStorageVersion)" /> <PackageReference Include="Hangfire.MySqlStorage" Version="$(HangfireMySqlStorageVersion)" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftVersion)" /> <PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="$(MicrosoftVersion)" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="$(AbpPackageVersion)" /> <PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic" Version="$(AbpPackageVersion)" />

29
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs

@ -13,27 +13,8 @@ namespace Lion.AbpPro
{ {
public static void Main(string[] args) public static void Main(string[] args)
{ {
try CreateHostBuilder(args).Build().Run();
{
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();
}
} }
private static IHostBuilder CreateHostBuilder(string[] args) => private static IHostBuilder CreateHostBuilder(string[] args) =>
@ -45,7 +26,9 @@ namespace Lion.AbpPro
}) })
.UseSerilog((context, loggerConfiguration) => .UseSerilog((context, loggerConfiguration) =>
{ {
SerilogToEsExtensions.SetSerilogConfiguration(loggerConfiguration,context.Configuration); SerilogToEsExtensions.SetSerilogConfiguration(
loggerConfiguration,
context.Configuration);
}).UseAutofac(); }).UseAutofac();
} }
} }

22
aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json

@ -1,18 +1,18 @@
{ {
"Serilog": { "Serilog": {
"Using": [ "Using": [
"Serilog.Sinks.Console", "Serilog.Sinks.Console"
"Serilog.Sinks.RollingFile"
], ],
"MinimumLevel": { "MinimumLevel": {
"Default": "Information", "Default": "Debug",
"Override": { "Override": {
"Microsoft": "Information", "Microsoft": "Information",
"Volo.Abp": "Information", "Volo.Abp": "Information",
"Hangfire": "Information", "Hangfire": "Information",
"DotNetCore.CAP": "Information", "DotNetCore.CAP": "Information",
"Serilog.AspNetCore": "Information", "Serilog.AspNetCore": "Information",
"Microsoft.EntityFrameworkCore": "Information" "Microsoft.EntityFrameworkCore": "Information"
} }
}, },
"WriteTo": [ "WriteTo": [
@ -54,10 +54,10 @@
"ElasticSearch": { "ElasticSearch": {
"Enabled": "false", "Enabled": "false",
"Url": "http://es.cn", "Url": "http://es.cn",
"IndexFormat": "companyname.projectname.development.{0:yyyy.MM.dd}", "IndexFormat": "Lion.AbpPro.development.{0:yyyy.MM.dd}",
"UserName": "elastic", "UserName": "elastic",
"Password": "aVVhjQ95RP7nbwNy", "Password": "aVVhjQ95RP7nbwNy",
"SearchIndexFormat": "companyname.projectname.development*" "SearchIndexFormat": "Lion.AbpPro.development*"
}, },
"HttpClient": { "HttpClient": {
"Sts": { "Sts": {

2
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); var statusCode = (int)_statusCodeFinder.GetStatusCode(context.HttpContext, context.Exception);
context.HttpContext.Response.StatusCode = 200; 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.Code = context.HttpContext.TraceIdentifier;
remoteServiceErrorInfo.Message = SimplifyMessage(context.Exception); remoteServiceErrorInfo.Message = SimplifyMessage(context.Exception);
var result = new WrapResult<object>(); var result = new WrapResult<object>();

Loading…
Cancel
Save