ger*_*i-m 5 logging json google-compute-engine google-cloud-stackdriver
我目前正在使用 GCE 容器虚拟机(不是 GKE)来运行 Docker 容器,这些容器将其 JSON 格式的日志写入控制台。日志信息会自动收集并存储在 Stackdriver 中。
问题:Stackdriver 将data-field显示jsonPayload为文本 - 而不是 JSON。看起来有效负载中字段的引号被转义,因此不被识别为 JSON 结构。
我同时使用了 logback-classic(就像这里解释的那样)和 slf4j/log4j(使用 JSONPattern)来生成 JSON 输出(看起来不错),但是输出没有正确解析。
我假设,我必须在某处配置输出是 JSON 结构的,而不是纯文本。到目前为止,我还没有找到在使用容器 VM 时执行此操作的选项。
你的记录器输出什么到标准输出?
您不应该jsonPayload在日志输出中自己创建字段。当您的日志被解析并满足某些条件时,该字段会自动创建。
基本上,将日志消息写入messageJSON 输出的字段中,并将任何附加数据写入附加字段中。Stackdriver 会从 JSON 有效负载中删除所有特殊字段,如果没有留下任何内容,那么您的消息将最终结束,textPayload否则您将得到jsonPayload包含消息和其他字段的 。
完整文档位于: https: //cloud.google.com/logging/docs/structed-logging
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |