【问题标题】:Min and Max level for Serilog logger sinksSerilog 记录器接收器的最小和最大级别
【发布时间】:2022-03-11 16:25:37
【问题描述】:

我们发现serilog中存在restrictedToMinimumLevel属性,但它也支持最高级别属性吗?

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

【问题讨论】:

  • 有一个.Filter.ByIncludingByExcluding,可以访问关卡。没有通过 appsettings.json 使用它,但一般来说,配置 DSL 在 json 中有等价物

标签: c# serilog


【解决方案1】:

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

在这种情况下,可以使用结合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
                }
              }
            ]
     

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多