web-dev-qa-db-fra.com

Journaux de niveau minimum différents Serilog

Existe-t-il un moyen de différencier le niveau enregistré entre les différents enregistreurs pour Serilog? Je veux être en mesure de consigner le débogage MinimumLevel dans la sortie de la console, mais uniquement Warning et au-dessus dans la sortie de mon fichier. J'utilise ASP.NET Core 2.1 et voici à quoi ressemble appsetting.json actuellement:

"Serilog": {
    "Using": [ "Serilog.Sinks.Console" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "RollingFile",
        "IsJson": true,
        "Args": {
          "pathFormat": "C:\\Logs\\Log-{Hour}.json",
          "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
        }
      },
      {
        "Name": "Console"
      }
    ]
  },

Est-ce quelque chose comme un autre paramètre sous "Args"? J'ai essayé "minimumnLevel" à cet endroit mais cela n'a pas fonctionné.

5
jollyroger23

Le paramètre que vous recherchez est restrictedToMinimumLevel. Ce GitHub issue en montre quelques exemples, mais pour votre exemple, il vous suffit d'ajouter restrictedToMinimumLevel à votre Args pour RollingFile:

"Serilog": {
    "Using": [ "Serilog.Sinks.Console" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "RollingFile",
        "IsJson": true,
        "Args": {
          "pathFormat": "C:\\Logs\\Log-{Hour}.json",
          "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog",
          "restrictedToMinimumLevel": "Warning"
        }
      },
      {
        "Name": "Console"
      }
    ]
  },
7
Kirk Larkin

Dans votre configuration, vous avez un enregistreur Serilog, mais vous avez 2 puits s. L'un de vos puits est RollingFile et l'autre est Console.

Vous pouvez remplacer (mais seulement augmenter) le niveau de journalisation minimum par récepteur , L'argument est appelé restrictedToMinimumLevel.

Étant donné que vous souhaitez augmenter le niveau de journalisation minimum de Debug à Warning par défaut de votre enregistreur dans votre récepteur de fichiers, dans votre fichier appsettings.json, cela ressemblerait à ceci:

"Serilog": {
    "Using": [ "Serilog.Sinks.Console" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "RollingFile",
        "IsJson": true,
        "Args": {
          "pathFormat": "C:\\Logs\\Log-{Hour}.json",
          "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog",
          "restrictedToMinimumLevel": "Warning"
        }
      },
      {
        "Name": "Console"
      }
    ]
  },
3
Saeb Amini