go - 在开发/测试环境中使用 cloud.google.com/go/logging 时,有没有办法禁用日志转发到 GCP?
问题描述
我想log
在开发环境中运行代码时“隐藏”记录器初始化并从中返回一个普通记录器(),而cloud.google.com/go/logging
当部署在 GCP 上时返回一个。
但是cloud.google.com/go/logging
logger 没有与 相同的接口log
,所以它需要一些额外的包装,我希望我可以避免这种情况。
查看文档,我找不到执行此操作的标准方法。如果没有办法做到这一点,避免使用不是来自预生产/生产环境的日志向谷歌云日志发送垃圾邮件的常用方法是什么?除了使日志变得嘈杂之外,在某些情况下,我希望避免日志摄取还有成本。
解决方案
除了@Sergiusz 答案之外,您还可以将您的开发记录到相同的日志或具有模板名称的日志中,并使用logadmin包按名称删除日志。您可以在执行结束时、在预定进程中或从命令行执行此操作。您也可以使用gcloud logging logs delete
command来完成。如果您有多个日志,则需要在每个日志中多次调用“删除”。
但是,我建议改为模拟该包,因为使用它可能会耗尽您在开发项目中的 API 配额。因此,如果将日志写入 STDOUT 就足够了,那么最快的方法就是模拟 Logger 类型。
PS 我建议在https://github.com/googleapis/google-cloud-go中使用您的用例打开一个问题并要求更改。虽然它可能会导致重大变化,但提供反馈仍然很重要。
推荐阅读
- drupal - Drupal 9 问题:Monolog 2.0 与 Akamai 模块冲突
- android - android应用程序在哪里存储照片
- c++ - 如何获得涉及 C++ 标准库的帧指针性能调用堆栈/火焰图?
- python - 如何修复硒,元素不可交互?
- python - 在预测大尺寸的同时提高 LSTM 模型性能
- python - 在 gradcam 的子类 Keras 模型中获取预训练架构的最后一个卷积层的输出
- python - 如何在 django 中验证给定的 URL 是否来自特定域
- flutter - 如何解决 Flutter 中不可为空的错误?
- kubernetes - 使用 NetApp 在 Kubernetes (OpenShift) 中恢复 PVC
- python - Python 和 Mysql 数据库