如何在Rust(Actix-web)项目中编程获取日志级别并判断Debug状态?
获取Actix-web Rust应用的日志级别并判断Debug是否启用
你可以借助log crate提供的API来实现这个判断,以下是两种可靠的实现方式:
方式一:检查全局最大日志级别
直接通过log::max_level()获取当前全局配置的最高日志级别,再和Debug级别对比:
use log::LevelFilter; fn is_debug_log_enabled() -> bool { log::max_level() >= LevelFilter::Debug }
在你的示例代码中,全局日志级别被设置为LevelFilter::Error,所以这个函数会返回false,符合预期。
方式二:针对特定日志目标检查(更精准)
如果你的日志是针对特定模块或自定义target配置的,可以用log::enabled!宏检查对应级别是否启用:
use log::Level; // 检查默认target的Debug级别是否启用 fn is_debug_log_enabled() -> bool { log::enabled!(Level::Debug) } // 针对指定target检查(比如你的应用模块target) fn is_debug_log_enabled_for_app() -> bool { log::enabled!(target: "your_app_name", Level::Debug) }
这个方式会考虑到针对特定target单独配置的日志级别,比全局检查更精准。
另外注意:你代码里的函数名is_degug_log_enabled存在拼写错误,应该改为is_debug_log_enabled。
内容的提问来源于stack exchange,提问作者Deepanshu Bhardwaj
相关产品推荐
相关产品推荐

