我正在尝试改善从基于node.js的GCP发布/订阅云功能获得的日志记录。我仅使用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 Cloud Functions一起很好地工作。发生崩溃时,我使用退出钩来刷新记录器,到目前为止,还没有发现任何问题。