You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NLog 5.0.4无法记录异常 求排查解决方法

问题分析与解决

你的代码核心问题是调用logger.Error时参数顺序错误,导致NLog无法识别你传入的异常对象。

原因说明

NLog的Error方法有多个重载,其中专门用于记录异常的重载是异常对象作为第一个参数,日志消息作为第二个参数。你当前的写法logger.Error("123", exc),会把exc当作消息字符串的格式化参数(类似string.Format的占位符参数),而非异常对象,因此NLog不会解析和记录该异常的详情。

修正代码

把catch块中的日志调用修改为正确的参数顺序即可:

catch (Exception exc)
{
    // 正确顺序:异常在前,消息在后
    logger.Error(exc, "123");
    Console.ReadLine();
}

额外说明

你的日志布局${exception:format=tostring}已经可以完整输出异常的消息和堆栈跟踪信息,参数修正后就能正常显示。如果需要自定义异常输出内容,也可以调整format参数,比如指定${exception:format=Message,StackTrace:separator= | }来明确输出消息和堆栈并自定义分隔符。

内容的提问来源于stack exchange,提问作者Hackworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:41:32