【问题标题】:Changing the header of Stackdriver Logging logs in GCP在 GCP 中更改 Stackdriver Logging 日志的标头
【发布时间】:2020-04-15 10:04:38
【问题描述】:

我目前正在处理一个有很多 consol.log 的 GAS 项目,但这是一个将要部署的项目。

是否可以在 GCP Stakdriver Logging 日志条目的标题中,在日期和时间旁边有 userNameuserMail

这是我指的部分:

感谢您的回答。

【问题讨论】:

    标签: logging google-apps-script google-cloud-platform google-cloud-stackdriver


    【解决方案1】:

    你不能直接修改头部(它总是只包含日志的时间戳),但是你可以在它旁边add custom fields

    首先,您必须在输入日志中包含要显示的字段(userNameuserMail)。您可以将其包含在日志条目的jsonPayload 字段中(请参阅Structured Logging 的文档)。完成后,假设您的字段为 jsonPayload.userNamejsonPayload.userMail,您可以在 Google 控制台的 Stackdriver Logging 页面上执行以下操作:

    • 点击查看选项(右上角,下载日志附近)
    • 选择修改自定义字段
    • 将您的字段添加为自定义字段:jsonPayload.userName,jsonPayload.userMail

    刷新后,网页应在时间戳右侧显示您的字段。

    【讨论】:

    • 感谢您的回答,您能否更清楚地解释如何在 json Payload 中包含 userName 和 userMail,我被阻止了
    • 我相信在 GAS 中,如果你在console.log 中写入 JSON,那么 Stackdriver 会自动在 jsonPayload 字段中写入你的 JSON 内容。所以基本上你可以在其中包含任何东西(例如:console.log({message: "hello", userName: "my_user", userMail: "my_mail"}) 将在 Stackdriver 中生成一个带有jsonPayload 的日志条目)。你能试试这个吗?
    • 是的,但这包括将其写入脚本的每个 console.log,我有很多。我以为我们可以自动化这个?
    • 您可以在任何地方创建和使用像customLog(message) 这样解析为console.log({message: message, userName: "my_user", userMail: "my_mail"}) 的函数。我不知道这是否可以覆盖console.log 的行为以避免替换所有console.log 调用,如果可以,这可能不是一个好主意(隐藏逻辑)。
    • 是的,我想过这样做,但我也认为这不是一个好主意,我会试试的,谢谢你的帮助
    猜你喜欢
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多