簡體   English   中英

如何編寫結構化日志以便 GCP 日志查看器使用消息字段?

[英]How to write structured logs so that message field is used by GCP Log Viewer?

有沒有辦法從 Cloud Functions 寫入結構化日志,以便消息字段自動顯示為 GCP 日志查看器中的主要消息?

使用此測試,我發現有時會使用名為message的字段。 例如,給定這些日志:

{"severity":"trace","time":"2020-03-09T12:21:13.660044125-07:00","message":"Trace Basic"}
{"severity":"debug","time":"2020-03-09T12:21:13.660047625-07:00","message":"Debug Basic"}
{"severity":"info","time":"2020-03-09T12:21:13.660049425-07:00","message":"Info Basic"}
{"severity":"warn","time":"2020-03-09T12:21:13.660051425-07:00","message":"Warn Basic"}
{"severity":"error","time":"2020-03-09T12:21:13.660053225-07:00","message":"Error Basic"}
{"severity":"info","time":"2020-03-09T12:21:13.660055125-07:00","message":"One line message"}
{"severity":"info","time":"2020-03-09T12:21:13.660057025-07:00","message":"Line 1 of 2\nLine 2 of 2 for zlog.Info"}
{"severity":"info","myIntField":532,"myStringField":"howdy","myMultilineStringField":"Line 1 of 2\nLine 2 of 2 for zlog.Info with fields","time":"2020-03-09T12:21:13.660059925-07:00","message":"With Fields Example"}

GCP 日志查看器將顯示如下內容:

谷歌日志控制台

注意最后一個條目,它應該有一條消息With Fields Example而有一個頂級消息{ "fields": { ... } }

額外細節

Cloud Run 有一份文檔描述了特殊的結構化日志字段(即嚴重性和消息),Stackdriver 日志記錄將自動選取這些字段並用於填充 Stackdriver 控制台中日志條目的調試/警告/信息/錯誤圖標和頂級消息。

消息中的特殊 JSON 字段

當您提供結構化日志作為 JSON 字典時,一些特殊字段將從 jsonPayload 中剝離並寫入生成的 LogEntry 中的相應字段,如特殊字段文檔中所述。

例如,如果您的 JSON 包含一個嚴重性屬性,它會從 jsonPayload 中刪除,而是顯示為日志條目的嚴重性。 message 屬性用作日志條目的主要顯示文本(如果存在)。 有關特殊屬性的更多信息,請閱讀下面的日志記錄資源部分。

Cloud Functions相應文檔沒有關於特殊字段的信息。

這是已修復的 Google Cloud Platform 日志記錄中的錯誤。

https://issuetracker.google.com/issues/151316427

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM