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

.NET Core Worker进程下Serilog无法记录完整异常日志的问题排查

问题原因

你遇到的问题是LogError方法参数顺序不符合.NET ILogger的规范重载要求导致的:

  • .NET 内置ILogger的日志方法家族(包括LogError/LogWarning等)有专门的异常重载,签名为:
    void LogError(Exception exception, string message, params object[] args)
    
    只有将异常对象作为第一个入参传入时,日志框架才会将该对象识别为需要序列化输出的异常,自动追加异常类型、消息、堆栈跟踪、内部异常等完整信息。
  • 你原来的写法_logger.LogError("Exception at GenerateException", ex)中,第一个参数是字符串,会被识别为消息模板,第二个参数ex会被当成消息模板的占位符参数处理,由于你的消息模板里没有任何{}格式的占位符,这个ex参数会被直接丢弃,自然不会输出任何异常相关内容。

修改为_logger.LogError(ex, "Exception at GenerateException")后,框架就会正确识别第一个入参为异常对象,输出完整的异常信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:36:07