logging - 有没有办法在我的应用程序的生产版本中静态禁用 Rust 日志记录?
问题描述
我有一个用 Rust 编写的 WebAssembly 模块,它log
在开发期间通过 crate 执行用于调试目的的日志记录。我注意到,即使我不配置记录器,格式和对内部log
函数的调用仍保留在生成的 WebAssembly 模块中。这会浪费字节,因为这些函数的输出将永远不会被使用/显示。
有什么方法可以静态禁用日志记录而不必删除代码中的日志宏调用?此外,有没有办法只在发布版本中禁用它?
解决方案
是的; log
crate 提供了一些特性标志,允许在编译时静态禁用日志记录到某个级别。
如果您想完全禁用发布版本中的所有日志记录,但在调试版本中保持正常日志记录,请更改您的条目Cargo.toml
以包含如下release_max_level_off
功能:
log = { version = "0.4", features = ["release_max_level_off"] }
这将导致从生成的二进制文件中消除对日志记录函数的所有调用,并通过死代码消除将任何相关的格式化代码带走。
推荐阅读
- jquery - 如何使用jQuery更改特殊符号内存在的字符串特定部分的颜色
- javascript - FIREBASE:从数据库中获取数据时为空
- ios - Vapor 应用程序无法在 Heroku 上部署:我们没有“5.1.3”的构建说明
- redis - 为什么 Redis TimeSeries 不捕获聚合中的最后一个元素?
- javascript - 如何使用工作箱测试预缓存?
- hadoop - 合并 HDFS 中的文件夹
- javascript - 如何在邮件中选择下拉列表值
- javascript - 如何将字符串转换为对象并在循环 javascript 中使用?
- machine-learning - 卷积中的膨胀内核与内核 5x5
- javascript - 未捕获的 ReferenceError:使用 babel 编译并加载到浏览器后未定义要求