gpt4 book ai didi

c# - Serilog 记录器接收器的最小和最大级别

转载 作者:行者123 更新时间:2023-12-05 03:00:19 26 4
gpt4 key购买 nike

我们发现 serilog 中存在 restrictedToMinimumLevel 属性,但它是否也支持 max level 属性?

之前我们使用了 NLog,它具有最小和最大级别的日志记录 (https://github.com/NLog/NLog/wiki/Configuration-file#rules)。
我们想从 debug 到 information 中记录文件中的控制台和警告信息,以及数据库中的错误
我们可以使用 appsettings.json 做到这一点吗?
我们使用的是 dotnet core 2.2。
非常感谢任何帮助。

最佳答案

回答有点晚了,但我刚遇到同样的问题并找到了解决方案。也许它会对像我这样的人有所帮助。

在这种情况下,可以使用结合 Serilog.Expressions 包的子记录器。 Sublogger 是主记录器中的一个新记录器,您可以为其设置过滤规则。例如,此配置表示,DebugInformation 日志将被写入 Console sink,并且带有 InformationWarning< 的日志 级别将写入 SqlServer 接收器。

这是表达式语言的引用: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
}
}
]

关于c# - Serilog 记录器接收器的最小和最大级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56937004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com