在关键路径中,保留低级调试/跟踪日志语句很有价值。这些可以通过运行时配置来启用,从而允许它们在生产中关闭(以避免性能损失),同时在生产环境中启用它们(例如用于调试或测试)。
这种方法要求在关键路径上遇到禁用日志语句的成本必须极低,最好只是布尔检查。
与 C/C 的 LOG 宏不同,Go 的日志记录不提供在检查标志之前避免评估参数的方法。这对避免禁用日志时的性能损失提出了挑战。
最佳方法取决于应用程序的具体需求。对于运行时可配置跟踪,EnabledLogger 模式或动态记录器交换是合适的。为了最小化开销和简洁的语法,将记录器分配给 bool 变量可能是有效的。代码生成为单独的调试构建提供了解决方案。
以上是如何在 Go 中实现禁用跟踪日志记录的最小开销?的详细内容。更多信息请关注PHP中文网其他相关文章!