我将 Firebase 函数与 Stackdriver 一起使用。
Stackdriver 与 Firebase 功能很好地集成,因此我可以使用console.error
命令轻松记录错误。但是,我不仅要记录错误对象,还要记录查询参数。如果我可以在同一日志行中记录错误对象和查询参数,它们可以很容易地分组和导出。
有没有一种简单的方法可以将信息添加到 Stackdriver 的错误日志中,如下所示?
console.error(new Error('Invalid query'), req.query)
谢谢。
- - 编辑
我尝试了以下代码。这可以向日志条目添加查询参数,但不幸的是,Stackdriver 将所有错误归为一组,如下面的屏幕截图所示。即使每个错误的类型不同并且发生在不同的文件中,所有错误也会组合在一起。我希望 Stackdriver Error Reporting 像往常一样按错误类型或堆栈跟踪对错误进行分组。
index.js
const functions = require('firebase-functions')
const raiseReferenceError = require('./raiseReferenceError')
const raiseSyntaxError = require('./raiseSyntaxError')
const raiseTypeError = require('./raiseTypeError')
exports.stackdriverErrorLogging = functions.https.onRequest((req, res) => {
try {
switch (Math.round(Math.random() * 2)) {
case 0:
raiseReferenceError()
break
case 1:
raiseSyntaxError()
break
default:
raiseTypeError()
break
}
} catch (error) {
console.error({
error: error,
method: req.method,
query: req.query
})
}
res.send('Hello from Firebase!')
})
raiseReferenceError.js
module.exports = () => {
console.log(foo)
}
raiseSyntaxError.js
module.exports = () => {
eval(',')
}
raiseTypeError.js
module.exports = () => {
const foo = null
foo()
}
10次运行结果截图:
Stackdriver Error Reporting 错误摘要页面 Stackdriver Error Reporting 错误详情页面