Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET Core 3-使用NLog记录不会记录异常_C#_Asp.net Core_Nlog - Fatal编程技术网

C# ASP.NET Core 3-使用NLog记录不会记录异常

C# ASP.NET Core 3-使用NLog记录不会记录异常,c#,asp.net-core,nlog,C#,Asp.net Core,Nlog,我正在使用ASP.NET核心记录器和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" fileNam

我正在使用ASP.NET核心记录器和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}" />


文件中记录的是
出现错误
,没有实际的异常和stacktrace。

ASP.NET Core logger所需的正确语法是

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;
}