Merge pull request #803 from tchaikov/patch-2

Update log.md
pull/805/head
Sunface 3 years ago committed by GitHub
commit e9be762bbb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,6 +1,6 @@
# 日志门面 log
就如同 slf4j 是 Java 的日志门面库,[log](https://github.com/rust-lang/log) 也是 Rust 的日志门面库( 这不是我自己编的,官方用语: logging facade ),它目前是由官方提供维护工作,更新较为活跃,因此大家可以放心使用。
就如同 slf4j 是 Java 的日志门面库,[log](https://github.com/rust-lang/log) 也是 Rust 的日志门面库( 这不是我自己编的,官方用语: logging facade ),它目前由官方积极维护,因此大家可以放心使用。
使用方式很简单,只要在 `Cargo.toml` 中引入即可:
```toml
@ -29,7 +29,7 @@ pub trait Log: Sync + Send {
## 日志宏
`log` 还为我们提供了一整套标准的宏,用于方便地记录日志。`trace!`、`debug!`、`info!`、`warn!`、`error!`,这几个大家是否很眼熟,是的,它们跟我们上一章节提到的日志级别几乎一模一样,唯一的区别就是这里乱入了一个 `trace!`,它比 `debug!` 的日志级别还要低、记录的信息还要详细,这么说吧,如果你想事无巨细的追踪某个流程的所有信息,就可以用它了
`log` 还为我们提供了一整套标准的宏,用于方便地记录日志。看到 `trace!`、`debug!`、`info!`、`warn!`、`error!`,大家是否感觉眼熟呢?是的,它们跟上一章节提到的日志级别几乎一模一样,唯一的区别就是这里乱入了一个 `trace!`,它比 `debug!` 的日志级别还要低,记录的信息还要详细。可以说,你如果想巨细无遗地了解某个流程的所有踪迹,它就是不二之选
```rust
use log::{info, trace, warn};
@ -54,7 +54,7 @@ pub fn shave_the_yak(yak: &mut Yak) {
上面的例子使用 `trace!` 记录了一条可有可无的信息:准备开始剃须,然后开始寻找剃须刀,找到后就用 `info!` 记录一条可能事后也没人看的信息:找到剃须刀;没找到的话,就记录一条 `warn!` 信息,这条信息就有一定价值了,不仅告诉我们没找到的原因,还记录了发生的次数,有助于事后定位问题。
可以看出,这里的日志级别使用跟我们上一章节描述的基本吻合
可以看出,这里使用日志级别的方式和我们上一章节所述基本相符
除了以上常用的,`log` 还提供了 `log!``log_enabled!` 宏,后者用于确定一条消息在当前模块中,对于给定的日志级别是否能够被记录

Loading…
Cancel
Save