Browse Source

👕 调整Serilog设置

pull/27/head
王军 4 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. 31
      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.UseAbpSerilogEnrichers();
app.UseSerilogRequestLogging(opts =>
{
opts.EnrichDiagnosticContext = SerilogToEsExtensions.EnrichFromRequest;
});
app.UseUnitOfWork();
app.UseConfiguredEndpoints(endpoints => { endpoints.MapHealthChecks("/health"); });
app.UseHangfireDashboard("/hangfire", new DashboardOptions()

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

@ -2,37 +2,20 @@ 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
{
public static class SerilogToEsExtensions
{
public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration,
IHostEnvironment hostingEnvironment)
public static void SetSerilogConfiguration(LoggerConfiguration loggerConfiguration, IConfiguration configuration)
{
// 默认读取 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
if (!writeToElasticSearch)

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

@ -1,6 +1,8 @@
using System;
using System.IO;
using Lion.AbpPro.Extensions;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Events;
@ -11,10 +13,30 @@ namespace Lion.AbpPro
{
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)
.ConfigureWebHostDefaults(webBuilder =>
{
@ -23,10 +45,7 @@ namespace Lion.AbpPro
})
.UseSerilog((context, loggerConfiguration) =>
{
SerilogToEsExtensions.SetSerilogConfiguration(
loggerConfiguration,
context.Configuration,
context.HostingEnvironment);
SerilogToEsExtensions.SetSerilogConfiguration(loggerConfiguration,context.Configuration);
}).UseAutofac();
}
}

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

@ -1,5 +1,9 @@
{
"Serilog": {
"Using": [
"Serilog.Sinks.Console",
"Serilog.Sinks.RollingFile"
],
"MinimumLevel": {
"Default": "Information",
"Override": {
@ -7,9 +11,21 @@
"Volo.Abp": "Information",
"Hangfire": "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": {
"SelfUrl": "http://localhost:44315",
@ -23,12 +39,9 @@
},
"Jwt": {
"Audience": "LionAbpPro",
//
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
"Issuer": "LionAbpPro",
//
"ExpirationTime": 24
// hour
},
"Cap": {
"Enabled": "false",

Loading…
Cancel
Save