首页 > 解决方案 > 在开发/测试环境中使用 cloud.google.com/go/logging 时,有没有办法禁用日志转发到 GCP?

问题描述

我想log在开发环境中运行代码时“隐藏”记录器初始化并从中返回一个普通记录器(),而cloud.google.com/go/logging当部署在 GCP 上时返回一个。

但是cloud.google.com/go/logginglogger 没有与 相同的接口log,所以它需要一些额外的包装,我希望我可以避免这种情况。

查看文档,我找不到执行此操作的标准方法。如果没有办法做到这一点,避免使用不是来自预生产/生产环境的日志向谷歌云日志发送垃圾邮件的常用方法是什么?除了使日志变得嘈杂之外,在某些情况下,我希望避免日志摄取还有成本。

标签: gologginggoogle-cloud-platformgoogle-cloud-logging

解决方案


除了@Sergiusz 答案之外,您还可以将您的开发记录到相同的日志或具有模板名称的日志中,并使用logadmin包按名称删除日志。您可以在执行结束时、在预定进程中或从命令行执行此操作。您也可以使用gcloud logging logs delete command来完成。如果您有多个日志,则需要在每个日志中多次调用“删除”。

但是,我建议改为模拟该包,因为使用它可能会耗尽您在开发项目中的 API 配额。因此,如果将日志写入 STDOUT 就足够了,那么最快的方法就是模拟 Logger 类型。

PS 我建议在https://github.com/googleapis/google-cloud-go中使用您的用例打开一个问题并要求更改。虽然它可能会导致重大变化,但提供反馈仍然很重要。


推荐阅读