Firebase Functions 日志记录对象占用了大量 space

Firebase Functions logging objects takes up a lot of space

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

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

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

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

下面是正在记录的错误对象的示例:

如何将这种疯狂再次放入单个下拉列表中?

我们正在使用:

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

谢谢!

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

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

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

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

如果你把

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

在函数代码的顶部使用最新版本的 sdk 日志应该在 1 行中

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