ASP.NET Core 3 - при ведении журнала с помощью NLog не регистрируются исключения - PullRequest
0 голосов
/ 01 ноября 2019

Я использую регистратор ASP.NET Core вместе с NLog. Когда я регистрирую ошибку / критическое с исключением, сообщение регистрируется, но исключение не регистрируется.

try
{
    // my code throws an exception
}
catch (Exception ex)
{
    _logger.LogError($"There was an error", ex);
    return null;
}

Моя конфигурация NLog выглядит следующим образом:

<target xsi:type="File" name="ApiLogger" fileName="Logs\api-${shortdate}.log"
        layout="${longdate} - ${uppercase:${level}} - ${threadid} - ${logger} - ${message} ${exception:innerFormat=Message,StackTrace}" />

Что вошло в системуфайл There was an error без действительного исключения и трассировки стека.

1 Ответ

3 голосов
/ 01 ноября 2019

Правильный синтаксис, который вы хотите использовать для регистратора ASP.NET Core:

ILogger.LogError(Exception exception, string message);

В написанном коде используется метод расширения

ILogger.LogError(string message, params object[] args);

Это означает, что вы должны попробовать использовать этовместо:

try
{
    // my code throws an exception
}
catch (Exception ex)
{
    _logger.LogError(ex, "There was an error");
    return null;
}
...