Rust中log库的基本实现过程

log库是Rust中日志生态系统的基础,我在使用过程中一直想弄明白它是怎么实现的,通过阅读它的源码,基本了解了它的过程:

  1. 定义一个全局变量Logger,它要实现Log这个trait
  2. 各个宏info!, debug!等主要调用log!这个宏
  3. log!宏主要控制日志的level等级,并调用__private__api_log这个函数,这个函数就是全局变量Logger 的入口,传入Record日志数据给它处理
  4. 在运行时控制log日志等级,应该要通过环境变量来获取
  5. 新的知识点,宏定义中的$crate