Я пытаюсь улучшить ведение журнала, полученное из функций GCP Pub / Sub Cloud на основе моего node.js.Используя только console.log
, я могу видеть все в Stackdriver, но журналы не очень читабельны.Следы стека делятся на несколько строк, а уровни журналов в основном игнорируются (поэтому все либо отладки, либо ошибок, и ничего между ними).
Я пытался использовать библиотеку журналов Google (через @ google-cloud / logging-bunyan),который устраняет вышеуказанные проблемы, но создает более (серьезные) проблемы.
При использовании @google-cloud/logging-bunyan
с плохо работающей функцией (которая вылетает) вы получаете мало журналов в Stackdriver или вообще не получаете их.Проблема заключается в асинхронной природе библиотеки и в том, что функция не позволяет регистрировать вещи после ее сбоя.Я попытался открыть и закрыть регистратор, а также начало и конец каждой функции, что немного улучшило ситуацию.Но я начал получать очень странные ошибки (например, Maximum call stack size exceeded
).
В конце концов я сдался и вернулся к console.log.
Обратите внимание, что решение @google-cloud/logging-bunyan
, похоже, хорошо работает с облачными функциями HTTP.Я использую выходной крючок для очистки логгера в случае сбоя и до сих пор не видел никаких проблем с ним.