如何在 ASP.NET Core 6 中配置和使用 Serilog?
How to configure and use Serilog in ASP.NET Core 6?
由于最近引入了 Program.cs 启动代码的新结构,文档让我有点困惑。
在官方提供的Serilog.AspNetCore
example and in the Serilog.Sentry
example中,他们在WebHostBuilder
上使用了.UseSerilog()
。我找不到这个方法。
这是我试过的:
using Serilog;
var builder = WebApplication.CreateBuilder(args);
// adding services...
builder.Logging.AddSerilog(); // <- is this even necessary?
var app = builder.Build();
app.UseSerilogRequestLogging();
// configure request pipeline
app.Run();
但是我如何/在哪里可以配置接收器,例如调试、控制台、哨兵……?我觉得文档有点过时或者我有点盲目。
您需要确保安装了以下软件包:
- Serilog
- Serilog.Extensions.Hosting(这提供了
.UseSerilog
扩展方法。如果你有Serilog.AspNetCore包,你不需要明确包含这个)
那么你需要 using
:
using Serilog;
这应该允许您通过 builder.Host
:
访问 .UseSerilog
using Serilog;
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
您可以使用不同的重载来获取托管上下文、服务和配置。从那里您可以配置接收器等:
builder.Host.UseSerilog((hostContext, services, configuration) => {
configuration.WriteTo.Console();
});
由于最近引入了 Program.cs 启动代码的新结构,文档让我有点困惑。
在官方提供的Serilog.AspNetCore
example and in the Serilog.Sentry
example中,他们在WebHostBuilder
上使用了.UseSerilog()
。我找不到这个方法。
这是我试过的:
using Serilog;
var builder = WebApplication.CreateBuilder(args);
// adding services...
builder.Logging.AddSerilog(); // <- is this even necessary?
var app = builder.Build();
app.UseSerilogRequestLogging();
// configure request pipeline
app.Run();
但是我如何/在哪里可以配置接收器,例如调试、控制台、哨兵……?我觉得文档有点过时或者我有点盲目。
您需要确保安装了以下软件包:
- Serilog
- Serilog.Extensions.Hosting(这提供了
.UseSerilog
扩展方法。如果你有Serilog.AspNetCore包,你不需要明确包含这个)
那么你需要 using
:
using Serilog;
这应该允许您通过 builder.Host
:
.UseSerilog
using Serilog;
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseSerilog();
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
您可以使用不同的重载来获取托管上下文、服务和配置。从那里您可以配置接收器等:
builder.Host.UseSerilog((hostContext, services, configuration) => {
configuration.WriteTo.Console();
});