Ядро Asp.net не может использовать NLog - PullRequest
0 голосов
/ 17 мая 2018

Когда я пытаюсь сделать запись из моего кода, например:

LogManager.GetCurrentClassLogger().Info($"{newAccounts.Count()} accounts addded."); 

или

public ClientController(ILogger<ClientController> logger,
...
_logger.LogDebug("debug");

У меня ничего нет в моих лог-файлах. Но я мог видеть в моем файле журнала info.txt логи внутренних действий asp.net, например:

2018-05-16 00:30:11.7482|INFO|Microsoft.AspNetCore.Hosting.Internal.WebHost|Request starting HTTP/1.1 GET http://localhost:63323/Controller/Method

Мой nlog.config выглядит так:

  <targets>
    <target name="fileLogDebug" xsi:type="File" fileName="${logDirectory}/mobileController.txt" />
    <target name="fileLogTrace" xsi:type="File" fileName="${logDirectory}/trace.txt" />
    <target name="fileLogDebug" xsi:type="File" fileName="${logDirectory}/debug.txt" />
    <target name="fileLogInfo" xsi:type="File" fileName="${logDirectory}/info.txt" />
    <target name="err" xsi:type="File" fileName="${logDirectory}/eeeeee.txt" />
  </targets>

  <rules>
    <logger name="*" level="Trace" writeTo="fileLogTrace" />
    <logger name="*" level="Debug" writeTo="fileLogDebug" />
    <logger name="*" level="Info" writeTo="fileLogInfo" />
    <logger name="*" level="Warn" writeTo="fileLogWarn" />
    <logger name="*" level="Error" writeTo="err" />
    <logger name="*" level="Fatal" writeTo="fileLogSecurity" />
  </rules>

Код инициализации NLog:

    loggerFactory.AddNLog();
    NLog.LogManager.LoadConfiguration("nlog.config");
    app.AddNLogWeb();

В чем проблема?

1 Ответ

0 голосов
/ 17 мая 2018

Уровень журнала по умолчанию для MS Logging: info.

Поэтому установите MinimumLevel на Trace, чтобы контролировать все из nlog.config:

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .ConfigureLogging(logging =>
        {
            logging.ClearProviders();
            logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
        })
        .UseNLog()  // NLog: setup NLog for Dependency injection
        .Build();

Пример взят из официальной вики: https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2

...