我有一个用Rust编写的WebAssembly模块,该模块在开发过程中通过log
板条箱进行调试记录。我注意到,即使没有配置记录器,内部log
内部函数的格式和调用仍保留在生成的WebAssembly模块中。这会浪费字节,因为这些函数的输出将永远不会使用/显示。
有什么方法可以静态禁用日志记录,而不必删除代码中的log宏调用?另外,有没有办法仅在发行版本中禁用此功能?
答案 0 :(得分:3)
是; log
板条箱提供了features flags,可在编译时将日志静态禁用到一定级别。
如果您要完全禁用发行版本中的所有日志记录,但要保留调试版本中的正常日志记录,请在Cargo.toml
中更改条目,以包括如下的release_max_level_off
功能:
log = { version = "0.4", features = ["release_max_level_off"] }
这将导致从生成的二进制文件中消除对日志记录函数的所有调用,并通过消除无效代码来获取所有相关的格式化代码。