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

CloudWatch Lambda日志嵌套对象显示为[object]无法查看实际内容

这个问题的根因是Lambda的Node.js运行时中,console.log默认最多只展开2层嵌套对象,超过层级的嵌套内容就会被标记为[Object],和对象本身的状态无关,属于日志打印的默认截断逻辑。

解决方案
  • 方法1:通用JSON序列化打印(适配所有运行时)
    打印对象时改用JSON.stringify序列化后输出,可完整展示所有层级的嵌套内容:

    // 2表示缩进空格数,输出格式化的JSON结构
    console.log(JSON.stringify(yourTargetObject, null, 2))
    

    该方法优势是兼容性强,不需要额外依赖,缺点是无法序列化JSON不支持的类型(比如函数、undefined、Symbol等)。

  • 方法2:Node.js环境自定义展开深度
    如果你使用Node.js运行时,可通过内置的util.inspect方法设置无限制展开深度:

    const util = require('util')
    // depth设为null代表不限制展开层级
    console.log(util.inspect(yourTargetObject, {depth: null}))
    

    该方法可完整保留JS原生对象的所有类型输出,更贴合原生console.log的展示格式。

  • 方法3:全局配置默认展开深度
    不想逐个修改打印语句的话,可在代码入口处全局修改util的默认配置,后续所有console.log都会自动展开全层级对象:

    require('util').inspect.defaultOptions.depth = null
    

注意:CloudWatch单条日志最大支持256KB内容,若打印的对象过大,超出部分会被自动截断,这种场景建议拆分打印或仅输出需要的字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:39:07