Serilog通过appsettings.json把log分离到多个文件
随着项目项目模块的增加,log也会随之增加,这时分析log就会变得困难。
1.添加依赖
dotnet add package Serilog.Expressions
dotnet add package Serilog.AspNerCore
dotnet add package Serilog.Sinks.File
2.模块Log要通过微软ILogger实现
protected readonly ILogger<T> logger;
3.修改appsettings.josn
"Serilog": {
"Using": [ "Serilog.Sinks.File", "Serilog.Expressions" ],
"MinimumLevel": {
"Default": "Debug",
},
"WriteTo": [
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "StartsWith(SourceContext, 'mode1.')"
}
}
],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "logs/mode1-.log",
"outputTemplate": "[{Timestamp:HH:mm:ss.mmm} {Level:u3}] {Message:lj} {NewLine}{Exception}",
"rollingInterval": "Day",
"retainedFileCountLimit": 100,
"fileSizeLimitBytes": 104857600
}
}
]
}
}
},
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "StartsWith(SourceContext, 'mode2.')"
}
}
],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "logs/mode2-.log",
"outputTemplate": "[{Timestamp:HH:mm:ss.mmm} {Level:u3}] {Message:lj} {NewLine}{Exception}",
"rollingInterval": "Day",
"retainedFileCountLimit": 100,
"fileSizeLimitBytes": 104857600
}
}
]
}
}
},
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "StartsWith(SourceContext, 'mode3.')"
}
}
],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "logs/mode3-.log",
"outputTemplate": "[{Timestamp:HH:mm:ss.mmm} {Level:u3}] {Message:lj} {NewLine}{Exception}",
"rollingInterval": "Day",
"retainedFileCountLimit": 100,
"fileSizeLimitBytes": 104857600
}
}
]
}
}
},
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByExcluding",
"Args": {
"expression": "StartsWith(SourceContext, 'mode1.') or StartsWith(SourceContext, 'mode2.') or StartsWith(SourceContext, 'mode3.') "
}
}
],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "logs/Service-.log",
"outputTemplate": "[{Timestamp:HH:mm:ss.mmm} {Level:u3}] {Message:lj} {NewLine}{Exception}",
"rollingInterval": "Day",
"retainedFileCountLimit": 100,
"fileSizeLimitBytes": 104857600
}
}
]
}
}
},
]
}