Rust 中的日志管理
本篇内容我们来浅聊一下 Rust 中的日志功能。
在程序运行过程中,常需要使用日志来记录程序发生的事情,其中包括了时间、地点和具体内容等信息。
日志级别
我们一般会为日志区分各种级别:
- Debug: 调试信息,这一类主要为开发者提供调试便利的,比如说详细打印加载的配置信息。
- Info: 一般信息,用于记录程序运行期间的一些重要信息的,比如程序状态的变化。
- Warn: 警告信息,用于需要特别注意的日志内容,还没有达到 Error 的级别。
- Error: 错误信息,用于程序级别的错误或者严重的业务错误,这种错误通常不会影响程序运行。
- Fatal: 致命错误,出现了特别严重的错误,会导致程序没办法继续运行的那种。
日志 Crate
介绍几个我们在 Rust 中较为常用的 日志相关 包。
log
log 是由 Rust 官方维护的日志库,它提供了一些简单的方法让开发者可以快速生成日志:
1 |
|
可以看到,log
库使用了几种易用的宏来生成日志:info!
debug!
warn!
error!
fatal!
那么这些日志会被 打印/存放 到哪里呢?我们直接调用这段代码,会发现控制台没有打印任何东西。
这是因为,它仅为其他日志库提供了基础,当你引入了其他具体实现了日志输出的库后,这些方法就有用了。
目前 Rust 的日志库都基于 log 开发,所以说它更像是一种标准。我们接下来介绍的库也都基于它。
log4rs
log4rs 是一款高度可配置的日志框架(灵感来源于 log4j 框架)
我个人有几个项目都在使用它,这也是为什么我把它放在第二位介绍!
我们可以通过 log4rs
提供的 Config 对象进行详细的配置:
1 |
|
使用 log4rs
你可以为不同的日志等级,情况制定不同的输出器。或者同时将日志同步输出在控制台和文件之中。本框架拥有极高的可配置性。具体的使用方法可以查阅官方文档的内容!
env_logger
env_logger 可以允许你通过环境变量来配置日志。
1 |
|
然后我们通过 RUST_LOG
环境变量来配置一些信息:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!