rust项目中通过log4rs将日志写入文件

java项目中使用最广泛的日志系统应该是log4j(2)了。如果你也是一个Java程序员,可能在写rust的时候会想怎么能顺手地平移日志编写习惯到rust中来。
log4rs就是干这个的。从名字就能看出来。

将Java编程习惯代人rust不是一种好的方向,毕竟两种语言定位不同。不过单纯练手就无所谓了

下载依赖

https://crates.io 看一下log4rs最新的版本,添加到toml文件。log4rs是依赖 log 这个crate的,所以这个依赖也要加上:

log4rs = "1.3.0"
log = "0.4.21"

编写配置

跟log4j类似,我们也需要编写日志配置文件。
在项目根目录下创建文件夹config,在里面创建文件log4rs.yaml:

appenders:
  stdout:
    kind: console
  file:
    kind: file
    path: "log/log.log"
    encoder:
      pattern: "{d} - {m}{n}"
root:
  level: info
  appenders:
    - stdout
    - file

惊呆了没有我的小伙伴,跟log4j太像了。
里面指明了日志文件的位置是log/log.log,所以一会你可以来查看这个文件。
同时除了file这个appender,这里还同时让它输出到了控制台stdout

使用

main函数中编写

    log4rs::init_file("config/log4rs.yaml", Default::default()).unwrap();
    info!("届时一个info {}", String::from("hello log"));
    warn!("又是一个warn {}", String::from("hello log2"));
    error!("又是一个err {}", String::from("hello log3"));

运行,看一下控制台或日志文件:
image

完工!

posted @ 2024-05-16 21:55  大卫小东(Sheldon)  阅读(98)  评论(0编辑  收藏  举报