Я использую функции 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 Страница сведений об ошибках Stackdriver Reporting