【问题标题】:body.req is splitted to multiple logsbody.req 被拆分为多个日志
【发布时间】:2021-06-24 18:31:15
【问题描述】:

我有一个使用 GCP 应用引擎运行的 js 项目,但我遇到了一个关于 webhook 请求的 req.body 的问题。

我正在使用gcloud app logs tail -s 命令查看日志。 我得到了console.log(req.body) 的以下结果:

2021-03-28 13:36:06 default[20210328t132629]  {

2021-03-28 13:36:06 default[20210328t132629]    '{"key1":"someData" ,"key2":{"key2.1":"someData","key2.2":"someData,"key2.3":"someData","key2.4":"someData,.................,"key2.500":"someData"}, "key3": { 'key3.1': [ '1616991667' ] },

2021-03-28 13:36:06 default[20210328t132629]    'Key4': 'somwData',

2021-03-28 13:36:06 default[20210328t132629]    Signauture: 'someData_"},somwKey":null}}}'

2021-03-28 13:36:06 default[20210328t132629]  }

如图,req.body被拆分为多个日志,为什么会这样?如何避免?

【问题讨论】:

  • 我猜这是因为req.body 中有一些换行符。在打印之前尝试删除换行符。
  • 也许我做错了......但我试过了: let a = ("" + data).replace('\n', '') console.log(a) 它没有解决不了:(

标签: javascript node.js google-app-engine google-cloud-platform webhooks


【解决方案1】:

大部分 GCP 服务,如 GKE、Compute Engine 和 App Engine 使用 fluentd,默认以字符串格式导出日志。如果日志条目很长,它会将其拆分为多行。

在 JSON 中正确格式化日志的解决方案是使用 winstonbunyan 等库

Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多