Browse Source

👕 调整Serilog设置

pull/27/head
王军 5 years ago
parent
commit
ec5a1198ba
  1. 5
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/AbpProHttpApiHostModule.cs
  2. 21
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Extensions/SerilogToEsExtensions.cs
  3. 33
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Program.cs
  4. 23
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json

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

@ -110,10 +110,7 @@ namespace Lion.AbpPro
app.UseAuditing(); app.UseAuditing();
app.UseAbpSerilogEnrichers(); app.UseAbpSerilogEnrichers();
app.UseSerilogRequestLogging(opts =>
{
opts.EnrichDiagnosticContext = SerilogToEsExtensions.EnrichFromRequest;
});
app.UseUnitOfWork(); app.UseUnitOfWork();
app.UseConfiguredEndpoints(endpoints => { endpoints.MapHealthChecks("/health"); }); app.UseConfiguredEndpoints(endpoints => { endpoints.MapHealthChecks("/health"); });
app.UseHangfireDashboard("/hangfire", new DashboardOptions() app.UseHangfireDashboard("/hangfire", new DashboardOptions()

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

@ -2,38 +2,21 @@ 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
{ {
public static class SerilogToEsExtensions public static class SerilogToEsExtensions
{ {
public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration, public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration)
IHostEnvironment hostingEnvironment)
{ {
// 默认读取 configuration 中 "Serilog" 节点下的配置
loggerConfiguration.ReadFrom.Configuration(configuration)
.Enrich.WithExceptionDetails()
.Enrich.WithExceptionDetails(new DestructuringOptionsBuilder()
.WithDefaultDestructurers()
)
.Enrich.FromLogContext()
.WriteTo.Console();
if (hostingEnvironment.IsDevelopment())
{
loggerConfiguration.WriteTo.File("logs/logs.txt", rollingInterval: RollingInterval.Day);
}
loggerConfiguration.WriteTo.File("logs/logs.txt", rollingInterval: RollingInterval.Day);
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;

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

@ -1,6 +1,8 @@
using System; using System;
using System.IO;
using Lion.AbpPro.Extensions; using Lion.AbpPro.Extensions;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Serilog; using Serilog;
using Serilog.Events; using Serilog.Events;
@ -11,10 +13,30 @@ namespace Lion.AbpPro
{ {
public static void Main(string[] args) public static void Main(string[] args)
{ {
CreateHostBuilder(args).Build().Run(); 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();
}
} }
public static IHostBuilder CreateHostBuilder(string[] args) => private static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args) Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
@ -23,10 +45,7 @@ namespace Lion.AbpPro
}) })
.UseSerilog((context, loggerConfiguration) => .UseSerilog((context, loggerConfiguration) =>
{ {
SerilogToEsExtensions.SetSerilogConfiguration( SerilogToEsExtensions.SetSerilogConfiguration(loggerConfiguration,context.Configuration);
loggerConfiguration,
context.Configuration,
context.HostingEnvironment);
}).UseAutofac(); }).UseAutofac();
} }
} }

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

@ -1,5 +1,9 @@
{ {
"Serilog": { "Serilog": {
"Using": [
"Serilog.Sinks.Console",
"Serilog.Sinks.RollingFile"
],
"MinimumLevel": { "MinimumLevel": {
"Default": "Information", "Default": "Information",
"Override": { "Override": {
@ -7,9 +11,21 @@
"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"
} }
} },
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "RollingFile",
"Args": {
"pathFormat": "logs/logs-{Date}.txt"
}
}
]
}, },
"App": { "App": {
"SelfUrl": "http://localhost:44315", "SelfUrl": "http://localhost:44315",
@ -23,12 +39,9 @@
}, },
"Jwt": { "Jwt": {
"Audience": "LionAbpPro", "Audience": "LionAbpPro",
//客户端标识
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=", "SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
"Issuer": "LionAbpPro", "Issuer": "LionAbpPro",
//签发者
"ExpirationTime": 24 "ExpirationTime": 24
//过期时间 hour
}, },
"Cap": { "Cap": {
"Enabled": "false", "Enabled": "false",

Loading…
Cancel
Save