Python,如何设置jsonPayload的日志格式
Python, how to set log formatting for jsonPayload
我正在尝试将 JSON 格式的数据日志从 Google 云 运行 写入云日志记录。
但是当我在Cloud logging中查看我的日志时,我的数据日志在jsonPayload的消息字段中,作为字符串类型。
喜欢,
jsonPayload: {
message: "{"test": "testing"}"
python_logger: "cloudLogger"
}
但是,如我所料,
jsonPayload: {
test: "testing"
}
这是我试过的代码,
client = google.cloud.logging.Client()
handler = CloudLoggingHandler(client, name="test")
cloud_logger = logging.getLogger('cloudLogger')
cloud_logger.setLvel(logging.INFO)
cloud_logger.addHandler(handler)
cloud_logger.info(json.dumps({"test": "testing"})
为了改变 jsonPayload 的格式,我想我可能需要设置一个格式化程序,我尝试了一些来自网络的示例,但没有成功。
如何使 jsonPayload 准确显示我的 JSON 格式数据?
云函数也有类似的问题。我正在使用 python3.7
,使用了多个客户端日志记录库,并且 stackdriver 仍将其显示为文本,因为 python 正在以字符串格式打印它。
最终将 python 升级到 v3.8
,这解决了问题。
在 Cloud Logging 中,结构化日志我们可以参考使用 jsonPayload 字段为其负载添加结构的日志条目。
我们有多种方法可以将您的有效负载转换为 JSON 格式:
- 当您使用 Cloud Logging agent 获取日志条目时,您可以指定 Logging 代理将您的负载转换为 JSON 格式。
我们应该安装日志代理,要启用结构化日志,您必须在安装或重新安装时更改日志代理的默认配置
它。启用结构化日志记录会替换之前列出的配置文件。代理本身的操作没有变化。
- 您可以使用 Cloud Logging API 或 gcloud 命令行工具,您可以控制负载的结构。有关示例,请参阅 Writing structured logs。
您可以通过以下方式将结构化日志写入Logging:
- 将带有 jsonPayload 的完整 LogEntry 结构发送到云端
记录 API
- 向 Logging 代理提供序列化的 JSON 对象
当您启用结构化日志记录时,列出的日志将转换为与启用结构化日志之前格式不同的日志条目。
请查看Structured logging了解更多详情。
- 您可以使用 BindPlane 服务来获取日志,然后您的有效负载采用 JSON 格式并根据源系统进行结构化。
我正在尝试将 JSON 格式的数据日志从 Google 云 运行 写入云日志记录。 但是当我在Cloud logging中查看我的日志时,我的数据日志在jsonPayload的消息字段中,作为字符串类型。
喜欢,
jsonPayload: {
message: "{"test": "testing"}"
python_logger: "cloudLogger"
}
但是,如我所料,
jsonPayload: {
test: "testing"
}
这是我试过的代码,
client = google.cloud.logging.Client()
handler = CloudLoggingHandler(client, name="test")
cloud_logger = logging.getLogger('cloudLogger')
cloud_logger.setLvel(logging.INFO)
cloud_logger.addHandler(handler)
cloud_logger.info(json.dumps({"test": "testing"})
为了改变 jsonPayload 的格式,我想我可能需要设置一个格式化程序,我尝试了一些来自网络的示例,但没有成功。
如何使 jsonPayload 准确显示我的 JSON 格式数据?
云函数也有类似的问题。我正在使用 python3.7
,使用了多个客户端日志记录库,并且 stackdriver 仍将其显示为文本,因为 python 正在以字符串格式打印它。
最终将 python 升级到 v3.8
,这解决了问题。
在 Cloud Logging 中,结构化日志我们可以参考使用 jsonPayload 字段为其负载添加结构的日志条目。
我们有多种方法可以将您的有效负载转换为 JSON 格式:
- 当您使用 Cloud Logging agent 获取日志条目时,您可以指定 Logging 代理将您的负载转换为 JSON 格式。
我们应该安装日志代理,要启用结构化日志,您必须在安装或重新安装时更改日志代理的默认配置 它。启用结构化日志记录会替换之前列出的配置文件。代理本身的操作没有变化。
- 您可以使用 Cloud Logging API 或 gcloud 命令行工具,您可以控制负载的结构。有关示例,请参阅 Writing structured logs。
您可以通过以下方式将结构化日志写入Logging:
- 将带有 jsonPayload 的完整 LogEntry 结构发送到云端 记录 API
- 向 Logging 代理提供序列化的 JSON 对象
当您启用结构化日志记录时,列出的日志将转换为与启用结构化日志之前格式不同的日志条目。
请查看Structured logging了解更多详情。
- 您可以使用 BindPlane 服务来获取日志,然后您的有效负载采用 JSON 格式并根据源系统进行结构化。