【问题标题】:Firebase Functions logging objects takes up a lot of spaceFirebase Functions 记录对象占用大量空间
【发布时间】:2020-03-23 15:43:52
【问题描述】:

我们的 firebase 函数 console.log() 是一个接近执行结束的对象。

过去它总是将整个对象聚集到 Firebase Functions Log 界面中的一个下拉列表中,但现在它似乎将对象的每个键放在单独的行中,这不仅占用了更多空间,而且非常不可读。

这似乎主要发生在对象被字符串化时:

console.log(JSON.stringify({key1: 'val1', key2: 'val2'}))

以下是记录错误对象的示例:

这种疯狂怎么能再次放在一个下拉菜单中?

我们正在使用:

"firebase-admin": "^8.6.1",
"firebase-functions": "^3.3.0",

谢谢!

【问题讨论】:

  • 好问题!

标签: node.js firebase google-cloud-functions stackdriver google-cloud-stackdriver


【解决方案1】:

如果您有要记录的对象,我建议直接将其传递给console.log()JSON.stringify() 可能会添加回车,这可以解释为要记录的多行。

console.log({key1: 'val1', key2: 'val2'})

只要确保对象不包含对其他非常复杂的对象(尤其是自引用对象)的引用,否则可能会导致在运行时评估最终字符串时出现问题。

【讨论】:

  • 谢谢道格。我会重写一些东西,看看能不能解决它!
【解决方案2】:

console.log(data) 和 console.log(JSON.stringify(data)) 都不适合我。 使用 sdk 记录器对我有用:

import * as functions from 'firebase-functions';
functions.logger.log(data);

如此处所述: https://firebase.google.com/docs/functions/writing-and-viewing-logs#logger-sdk

【讨论】:

    【解决方案3】:

    如果你放

    require('firebase-functions/lib/logger/compat');
    

    在您的函数代码的顶部,带有最新版本的 sdk 日志应该在 1 行中

    源代码:https://github.com/firebase/firebase-functions/issues/612#issuecomment-646652675

    【讨论】:

      猜你喜欢
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 2019-03-28
      • 2015-03-21
      • 2018-02-14
      相关资源
      最近更新 更多