代码示例:
"Serilog": {
"Using": ["Serilog.Sinks.Graylog"],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "Graylog",
"Args": {
"facility": "AspNetCoreSample",
"serverUrl": "http://localhost:12201",
"transportType": "Udp",
"minimumLogEventLevel": "Information",
"maximumMessageSize": 8192,
"stackTraceDepth": 10,
"batchSizeLimit": 100,
"period": "00:00:01",
"includeMessageTemplate": true,
"messageIdGenerator": "Serilog",
"messageGenerator": "Serilog.Sinks.Graylog.Core.MessageBuilders.PropertyMessageGenerator, Serilog.Sinks.Graylog.Core",
"formatProvider": "Serilog.Sinks.Graylog.Core.FormatProviders.StructurelessJsonFormatter, Serilog.Sinks.Graylog.Core"
}
}],
"Enrich": ["WithExceptionDetails"]
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseSerilog((hostingContext, loggerConfiguration) =>
{
loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration)
.Enrich.FromLogContext();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
try
{
// Something may cause exceptions
}
catch (Exception ex)
{
_logger.LogError(ex, "An error has occurred"); //记录异常日志
}