ASP.NET 5: Как настроить путь журналов в Microsoft.Extensions.Logging

Я работаю над веб-приложением MVC6, и я новичок в ASP.NET 5. Я вижу, что ведение журнала (Microsoft.Extensions.Logging) используется во многих местах (например, AccountController.cs) в ASP.NET 5 шаблон веб-приложения по умолчанию, но я не мог понять, где настроить путь к созданному файлу журнала. Ниже приведены настройки в файле appsettings.json.

"Logging": {
"IncludeScopes": false,
"LogLevel": {
  "Default": "Verbose",
  "System": "Information",
  "Microsoft": "Information"
}  }

Достаточно ли добавить параметр в этот раздел? Если да, как называется этот параметр? Если нет, как это сделать?

Ранее я использовал Log4Net, и настройки были сделаны внутри файла logger.config.

2 ответа

Решение

ILogger - это просто абстракция, для входа в файл необходимо реализовать конкретный регистратор (log4net, serilog, ...).

public Startup(IHostingEnvironment env)
{
    // Some other code 

    Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug().WriteTo.File("YOUR FILE PATH HERE")
            .CreateLogger();

}

В методе configure (здесь используется serilog):

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddSerilog();

    // Some other code
}

Официальная документация

Там нет встроенного файлового регистратора в ASP.NET Core, Логирование Github хранилища

Но есть порт для использования log4net на ASP.NET Core, Ссылка на источники и сообщение в блоге

Используйте Serilog, добавьте ведение журнала файлов в приложения ASP.NET Core с помощью одной строки кода.

Установите Serilog.Extensions.Logging.File

Host.CreateDefaultBuilder(args)
            .ConfigureLogging((hostingContext, builder) =>
            {
                builder.AddFile("Logs/myapp-{Date}.txt");
            })

https://github.com/serilog/serilog-extensions-logging-file

Другие вопросы по тегам