Rust中`log`库的基本实现过程
Rust中log
库的基本实现过程
log
库是Rust中日志生态系统的基础,我在使用过程中一直想弄明白它是怎么实现的,通过阅读它的源码,基本了解了它的过程:
- 定义一个全局变量
Logger
,它要实现Log
这个trait - 各个宏
info!
,debug!
等主要调用log!
这个宏 log!
宏主要控制日志的level等级,并调用__private__api_log
这个函数,这个函数就是全局变量Logger
的入口,传入Record
日志数据给它处理- 在运行时控制log日志等级,应该要通过环境变量来获取
- 新的知识点,宏定义中的
$crate