使用 tflog 包比使用 log 包进行日志记录有什么优势?
What're the advantages of using tflog package over log package for logging?
上下文:我正在开发一个 TF 提供程序,我可以看到来自 HashiCorp 的最新 "Writing Log Output" doc,他们建议使用 tflog
包进行日志记录。
也就是说,我可以看到 GCP 的 TF 提供程序仍然是 using log
包。使用 tflog
比 log
有什么优势?
您链接的文档的 The Structured Logging section 描述了作者推荐这种不同日志记录策略的理由:
The tflog
package uses structured logging, based on go-hclog. Rather than writing logs as sentences with embedded variables and values, tflog
takes a sentence describing the logging event and a set of variables to log. When variables are separate from the log description, you can use them to programmatically parse, filter, and search log output. This separation also allows other parts of the system to associate variables with downstream log output.
虽然没有在文档中明确提及作为优势,但它确实也提到 tflog
有日志级别的概念,并且在撰写本文时 the standard library log
package 中没有相应的概念。
鉴于此,我认为 tflog
相对于标准库 log
的两个预期优势是:
tflog
使用结构化日志记录方法,其中结果中的单独变量是 machine-parsable,因此可以通过脚本进行自动过滤。
tflog
将日志级别与每条消息相关联,并且 SDK 允许 customizing the log level for a particular execution 控制输出量。
我认为要获得关于此的任何进一步背景信息需要询问 SDK 的作者,因为这是一种主观的设计权衡,而不是存在一个明确的正确答案的情况。
我假设一些现有的提供商继续使用标准库 log
只是因为该代码是在 tflog
存在之前编写的。 tflog
v0.2.0(显然是第一个 publicly-published 版本)于 2021 年 12 月发布,而像 Google 云平台提供商这样的大型 Terraform 提供商在此之前已经开发了将近十年。
上下文:我正在开发一个 TF 提供程序,我可以看到来自 HashiCorp 的最新 "Writing Log Output" doc,他们建议使用 tflog
包进行日志记录。
也就是说,我可以看到 GCP 的 TF 提供程序仍然是 using log
包。使用 tflog
比 log
有什么优势?
The Structured Logging section 描述了作者推荐这种不同日志记录策略的理由:
The
tflog
package uses structured logging, based on go-hclog. Rather than writing logs as sentences with embedded variables and values,tflog
takes a sentence describing the logging event and a set of variables to log. When variables are separate from the log description, you can use them to programmatically parse, filter, and search log output. This separation also allows other parts of the system to associate variables with downstream log output.
虽然没有在文档中明确提及作为优势,但它确实也提到 tflog
有日志级别的概念,并且在撰写本文时 the standard library log
package 中没有相应的概念。
鉴于此,我认为 tflog
相对于标准库 log
的两个预期优势是:
tflog
使用结构化日志记录方法,其中结果中的单独变量是 machine-parsable,因此可以通过脚本进行自动过滤。tflog
将日志级别与每条消息相关联,并且 SDK 允许 customizing the log level for a particular execution 控制输出量。
我认为要获得关于此的任何进一步背景信息需要询问 SDK 的作者,因为这是一种主观的设计权衡,而不是存在一个明确的正确答案的情况。
我假设一些现有的提供商继续使用标准库 log
只是因为该代码是在 tflog
存在之前编写的。 tflog
v0.2.0(显然是第一个 publicly-published 版本)于 2021 年 12 月发布,而像 Google 云平台提供商这样的大型 Terraform 提供商在此之前已经开发了将近十年。