[英]Min and Max level for Serilog logger sinks
我们发现serilog 中存在restrictedToMinimumLevel
属性,但它是否也支持max level 属性?
早些时候我们使用了NLog
,它具有最小和最大日志记录级别( https://github.com/NLog/NLog/wiki/Configuration-file#rules )。 我们想从debug to information
记录debug to information
控制台中的information to warning
文件中的information to warning
和数据库中的errors
。 我们可以使用 appsettings.json 做到这一点吗? 我们正在使用 dotnet core 2.2。 任何帮助是极大的赞赏。
答案有点晚了,但我只是有同样的问题并找到了解决方案。 也许它会对像我这样的人有所帮助。
在这种情况下,可以使用结合Serilog.Expressions
包的子记录器。 Sublogger 是主记录器中的一个新记录器,您可以为其设置过滤规则。 例如,这个配置说, Debug
和Information
日志将写入 Console sink,具有Information
和Warning
级别的日志将写入 SqlServer sink。
这是表达式语言的参考: https : //github.com/serilog/serilog-expressions#language-reference 。
JSON 配置将如下所示:
{
"Serilog": {
//... serilog config
"WriteTo": [
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "@l in ['Debug', 'Information']"
}
}
],
"WriteTo": [
{
"Name": "Console",
"Args": {
//Console sink config
}
}
],
}
}
},
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "@l in ['Information', 'Warning']"
}
}
],
"WriteTo": [
{
"Name": "MSSqlServer",
"Args": {
//MSSqlServer sink config
}
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.