ASP.NET Core входит в 2 разных файла - PullRequest
0 голосов
/ 12 ноября 2018

При использовании ведения журнала ядра ASP.NET по умолчанию в сочетании с Serilog возможно ли записывать ошибки в errors.log и информацию в informations.log

using Microsoft.Extensions.Logging;
using Serilog;

loggerFactory.AddSerilog();
loggerFactory.AddFile(Configuration.GetSection("Logging"));

Appsettings.json:

"Logging": {
    "PathFormat": "path-{Date}.log",
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Information",
      "System": "Information",
      "Microsoft": "Information"
    }
  }

Мне нужен один файл журнала, в котором я могу видеть выполненные запросы и тому подобное, только информационный журнал. И один журнал с ошибками для целей отладки. Как я могу записать разные вещи в 2 файла?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Если вы хотите использовать один объект Logger, вы можете фильтровать тип журнала по уровню:

using Serilog;
using Serilog.Events;

Log.Logger = new LoggerConfiguration()
            // Restricts logs to: Debug, Information, Warning, Error and Fatal
            .MinimumLevel.Debug()
            // Logs Information, Warning, Error and Fatal to "info-logs.txt" file
            .WriteTo.File(path: "info-logs.txt", restrictedToMinimumLevel: LogEventLevel.Information)
            // Logs Error and Fatal to "error-logs.txt" file
            .WriteTo.File(path: "error-logs.txt", restrictedToMinimumLevel: LogEventLevel.Error) 
            .CreateLogger();

Log.Verbose("Loggin Verbose..."); // Won't log, because the Logger "MinimumLevel" is set to Debug
Log.Debug("Loggin Debug..."); // Won't log, because there is no sink that takes Debug
Log.Information("Loggin Information..."); // Logs into "info-logs.txt"
Log.Warning("Loggin Warning..."); // Logs into "info-logs.txt"
Log.Error("Loggin Error..."); // Logs into "info-logs.txt" and "error-logs.txt"
Log.Fatal("Loggin fatal..."); // Logs into "info-logs.txt" and "error-logs.txt"

Уровни журналов и описания из документов :

enter image description here

0 голосов
/ 12 ноября 2018

Serilog поддерживает это, но у вас, похоже, отсутствует соответствующий код.В вашем методе Startup вы должны настроить свою конфигурацию SeriLog.Там вы можете настроить его для записи различных данных в разные файлы, используя приемники и фильтры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...