簡體   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