繁体   English   中英

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

[英]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 是主记录器中的一个新记录器,您可以为其设置过滤规则。 例如,这个配置说, DebugInformation日志将写入 Console sink,具有InformationWarning级别的日志将写入 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM