NLog LogEventInfo 记录异常

NLog LogEventInfo to log exception

我正在使用 LogEventInfo 记录日志文件和数据库条目。我还想在日志文件中抛出异常时记录堆栈跟踪。我以为我只需要将 LogEventInfo 中的 Exception 属性 设置为我要记录的异常,但它没有用,日志文件只包含 "Error my message"。我哪里做错了?谢谢

NLog.config就像

<target xsi:type="File" name="localLogFile" fileName="${basedir}/logs/${shortdate}.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />
<logger name="*" minlevel="Debug" writeTo="localLogFile" />

和 C# 代码

LogEventInfo logentity = new LogEventInfo(LogLevel.Error, "", "my message");
logentity.Properties["errormsg"] = msg;

logentity.Exception = new Exception("Dummy");

logger.Error(logentity);

您还需要在布局中打印异常,使用 ${exception}

所以一个好的布局应该是:

layout="${longdate} ${uppercase:${level}} ${message} ${exception}" />

检查 docs for ${exception} 以了解各种渲染选项。