致命日志标记为Google Cloud Kubernetes上的信息
我有一个使用Rails 2.5.1的应用程序,它部署在Google Cloud Kubernetes上,但是日志工作不好。致命错误显示为信息日志,而不是错误或严重错误 额外上下文:致命日志标记为Google Cloud Kubernetes上的信息,kubernetes,google-cloud-platform,ruby-on-rails-5,stackdriver,google-cloud-logging,Kubernetes,Google Cloud Platform,Ruby On Rails 5,Stackdriver,Google Cloud Logging,我有一个使用Rails 2.5.1的应用程序,它部署在Google Cloud Kubernetes上,但是日志工作不好。致命错误显示为信息日志,而不是错误或严重错误 额外上下文: 轨道5.2.1 此视图来自日志查看器 我正在使用RAILS\u LOG\u TO\u STDOUT=true。如果删除此项,则根本不会显示日志 谢谢 [更新] 我更新了集群以使用最新的Stackdriver API,但它仍然不工作,Rails.logger.error显示为INFO 请查看旧式日志记录和监视的文
- 轨道5.2.1
- 此视图来自日志查看器
- 我正在使用
。如果删除此项,则根本不会显示日志RAILS\u LOG\u TO\u STDOUT=true
Rails.logger.error
显示为INFO
请查看旧式日志记录和监视的文档部分: 严重性:默认情况下,写入标准输出的日志位于 信息级别和写入标准错误的日志位于错误列表中 数量结构化日志可以包括一个
严重性
字段,该字段定义
日志的严重性
因为您使用的是RAILS\u LOG\u TO\u STDOUT=true
LOG Ruby生成的事件,所以您可以看到严重性信息
请记住,您应该迁移到Kubernetes引擎监视:
警告:对Google Kubernetes的传统日志记录和监视支持
引擎已弃用。如果您使用的是旧式日志记录和监视,
然后在支持之前,必须迁移到Kubernetes引擎监视
对于旧版日志记录和监视,已删除
迁移之后最好返回到这个“问题”
编辑查看文档部分,您可以在其中找到Ruby的示例:
下面是一些将单个日志条目写入mylog的示例代码。这个
服务、区域、标签和其他内容将根据需要而更改
条目和进行编写的应用程序
我将日志格式更改为使用JSON
config.log_formatter = proc do |severity, datetime, progname, msg|
message = msg
message << " from #{progname}" if progname.present?
content = JSON.dump(timestamp: datetime.to_s, severity: severity, message: message)
content << "\n"
content
end
config.log_formatter=proc do |严重性、日期时间、程序名、消息|
消息=msg
消息似乎与此主题相同您是否对GKE集群使用传统日志记录和监视?如果是,您可以在这里找到一些解释“默认情况下,写入标准输出的日志位于信息级别,写入标准错误的日志位于错误级别。结构化日志可以包括一个严重性字段,该字段定义日志的严重性。”@SerhiiRohoza,也是从我这里打开的。好的。您的GKE集群是否使用传统日志记录和监视?@SerhiiRohoza是的。我更新了堆栈驱动程序,但仍然遇到同样的问题Rails.logger.error
正在作为信息打印。您是否仍然使用Rails\u LOG\u TO\u STDOUT=true
?yeap。我仍然在使用它。我认为rails发送的日志的严重性不正确。我基于此:除了您的链接,我还更新了我的答案,其中包含了文档编写日志条目的链接。
config.log_formatter = proc do |severity, datetime, progname, msg|
message = msg
message << " from #{progname}" if progname.present?
content = JSON.dump(timestamp: datetime.to_s, severity: severity, message: message)
content << "\n"
content
end