我不确定如何弄乱它,因为它看起来是如此简单。根据{{3}}:
console.error('message');
在Stackdriver Logs Viewer中应该具有 ERROR 日志级别。但是,我看到日志级别设置为“任何日志级别”。从stderr
看,似乎正确的是它正在登录到logName
。
logName: "projects/my-project-name/logs/stderr"
引用:
要从您的Node.js应用发出日志项,您可以使用
console.log()
或console.error()
函数,它们具有 以下日志级别:
- 用
console.log()
发出的物品具有 INFO 日志级别。- 用
console.error()
发出的物品具有 ERROR 日志级别。- 内部系统消息具有 DEBUG 日志级别。
我本来是想让winston
与Stackdriver一起工作(使用app engine standard documentation)来获得更详细的日志记录级别,但是现在我什至无法将其记录在 INFO 或 ERROR (带有基本的console.log()
和console.error()
)。
希望我不必只使用普通的console.error()
就写一个@google-cloud/logging-winston。
答案 0 :(得分:1)
尝试了几个小时后,我开始工作了。 我根据文档https://cloud.google.com/logging/docs/setup/nodejs#using_winston使用了Winston。
然后在stackdriver Log Viewer中,我从下拉菜单中选择了winston_log
,如下所示:
现在显示错误日志。
这也适用于Bunyan。您必须为Bunyan选择bunyan_log
。
希望这对某人有帮助:)
答案 1 :(得分:1)
tl; dr -不支持。
因此,自从我发布问题以来,似乎Google已更新了其文档。他们澄清说,已经收集了对stdout
和stderr
的写操作,但是:
不提供日志级别,可用于在“日志查看器”中进行过滤
我很高兴回答一个问题,那就是:“不,console.log()
和console.error()
将没有日志级别。”这种与下一段矛盾。我可能对文档有误读或误解,因此请在这种情况下发表评论。
我拍摄了文档的屏幕快照,指出了我指的是什么,以防他们再次更新它:
将Google支持的一种日志库与Stackdriver日志传输一起使用,例如@ darshan-devrai的答案。如果您不想更改所有console.log()
,console.error()
等,则只需将控制台记录器别名为您选择的记录器(类似于此stackoverflow answer)。
答案 2 :(得分:0)