收藏
回答

小程序云开发高级日志,不支持自定义对象的键值对作为检索条件

框架类型 问题类型 操作系统 工具版本
小程序 Bug macOS 1.05.2103190

通过 `logger()` 写入了一下日志信息,如下:

通过自带的 `function:value` 是可以检索到日志信息,但通过 `name:fix-ticket-record-maximum` 并不能检索出日志信息:

官方文档 https://developers.weixin.qq.com/minigame/dev/wxcloud/guide/functions/logservice.html 上提到对象的 <key, value> 会成为可检索的键值对。

文档上还提到,键值搜索格式,需要开启配置 键值索引,不过好像并没有配置入口。

希望有人帮忙看看是我操作问题,还是目前高级日志暂不支持自定义对象的键值对查询。

回答关注问题邀请回答
收藏

2 个回答

  • Shannon
    Shannon
    2021-04-12

    你好,

    1. 图中看起来检索的是普通 Log 信息(即 console.log 的参数),此时 Log 信息存在日志的 「msg」 字段中。如果需要查询,需要使用如下的语法转义冒号:只检索值「name\:fix-ticket-record-maximum」或检索键值对「msg:name\:fix-ticket-record-maximum
    2. 使用 cloud.logger() 工具类打印的自定义字段,是可以直接查询的,不需要转义。使用时注意确认 wx-server-sdk 版本 为 2.4.0 或以上。
      const log = cloud.logger()
      log.info({
        msg: '自定义',
        time: Date.now(),
        attributes: {
          a: 1,
          b: 2,
        },
        route: 'echo/index',
      })
    


    2021-04-12
    有用 1
    回复 3
    • wxuncheng
      wxuncheng
      2021-04-25
      不好意思回复晚了,使用语法转义冒号的方法查询是可以的,但直接用 `route:echo/index` 这种键值对是不行的;另外 wx-server-sdk 最新的版本好像就只有 2.4.0,没有找到 > 2.4.0 的新版本了。
      2021-04-25
      回复
    • Shannon
      Shannon
      2021-04-25回复wxuncheng
      这种键值对只能通过 cloud.logger 打印自定义字段查询,查不到的日志是通过别的形式打印的吗?wx-server-sdk 是 2.4.0 即可。
      2021-04-25
      回复
    • wxuncheng
      wxuncheng
      2021-04-25回复Shannon
      我用的就是你上面提供的例子,用的也是 cloud.logger 的方式打印的。但在高级日志里的展示形式好像和你截图里不太一样。
      2021-04-25
      回复
  • wxuncheng
    wxuncheng
    2021-04-26

    已解决。

    const log = cloud.logger()
    


    该语句需要在云函数入口函数 `exports.main` 内的执行上下文才生效,`cloud.logger` 执行的时候会判断环境变量 `_SCF_TCB_LOG` 是否等于 "1",只有等于 "1" 的时候,才能启用高级日志,否则会继续使用 `console.log` 方式。

    只有在 `exports.main` 内的执行上下文里 `_SCF_TCB_LOG` 才等于 "1"。

    2021-04-26
    有用 2
    回复
登录 后发表内容
问题标签