Serilog 在 .NET 6 中的配置示例教程
1. 项目的目录结构及介绍
dotnet6-serilog-example/
├── .gitignore
├── LICENSE
├── Program.cs
├── README.md
├── appsettings.Development.json
├── appsettings.json
├── dotnet6-serilog-example.csproj
- .gitignore: Git 忽略文件配置。
- LICENSE: 项目许可证文件。
- Program.cs: 项目的启动文件。
- README.md: 项目说明文档。
- appsettings.Development.json: 开发环境下的配置文件。
- appsettings.json: 默认配置文件。
- dotnet6-serilog-example.csproj: 项目文件。
2. 项目的启动文件介绍
Program.cs
Program.cs
是 .NET 6 项目的启动文件,其中包含了 Serilog 的初始化配置。以下是关键部分的代码:
using Serilog;
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateBootstrapLogger();
Log.Information("Starting up");
这段代码在程序启动时初始化 Serilog,并配置日志输出到控制台。CreateBootstrapLogger()
方法设置了一个初始的日志配置,该配置可以在后续的初始化过程中被替换。
3. 项目的配置文件介绍
appsettings.json
appsettings.json
是项目的默认配置文件,包含了 Serilog 的配置信息。以下是一个示例配置:
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.Seq" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{ "Name": "Console" },
{ "Name": "Seq", "Args": { "serverUrl": "http://localhost:5341" } }
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Properties": {
"Application": "Sample"
}
}
}
- Using: 指定使用的 Serilog 插件。
- MinimumLevel: 设置日志的最小级别。
- WriteTo: 配置日志输出目标,这里配置了控制台和 Seq 服务器。
- Enrich: 配置日志的丰富信息,如日志上下文、机器名和线程ID。
- Properties: 添加自定义的日志属性。
appsettings.Development.json
appsettings.Development.json
是开发环境下的配置文件,通常会覆盖默认配置文件中的一些设置,以便在开发环境中进行更详细的日志记录。
{
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Information",
"System": "Information"
}
}
}
}
在开发环境中,日志的最小级别被设置为 Debug
,以便记录更多的调试信息。