#logging-framework #logging #log #logger #log4 #json-xml

log4rs

log外观提供高度可配置的多输出日志实现的库

40个版本 (5个稳定版)

1.3.0 2024年2月10日
1.2.0 2022年10月11日
1.1.1 2022年4月22日
1.0.0 2020年12月16日
0.3.1 2015年3月26日

#6 in 压缩

Download history 60007/week @ 2024-05-01 62283/week @ 2024-05-08 71284/week @ 2024-05-15 64442/week @ 2024-05-22 63992/week @ 2024-05-29 73754/week @ 2024-06-05 63231/week @ 2024-06-12 62813/week @ 2024-06-19 65990/week @ 2024-06-26 65179/week @ 2024-07-03 71190/week @ 2024-07-10 71871/week @ 2024-07-17 73721/week @ 2024-07-24 79261/week @ 2024-07-31 79280/week @ 2024-08-07 77008/week @ 2024-08-14

每月323,895次下载
591 个crate中使用 (324 个直接使用)

MIT/Apache

230KB
5.5K SLoC

log4rs

docs crates.io License: MIT OR Apache-2.0 CI Minimum rustc version

log4rs是一个高度可配置的日志框架,它模仿了Java的Logback和log4j库。

警告

如果您在配置中使用文件轮转,存在已知的重大性能问题,请注意!默认情况下启用了gzip功能,并且在滚动文件时将自动压缩日志存档。当日志存档很大时,这是一个问题,因为压缩是在主线程中进行的,这会在压缩完成之前阻止进程。请注意,从1.0版本开始,将删除默认功能中的gzip功能。

减轻这种影响的方法如下。

  1. 使用background_rotation功能,该功能会启动一个操作系统线程来执行压缩。
  2. 使用--no-default-features禁用gzip功能。
  3. 确保存档足够小,以便压缩时间是可以接受的。

有关更多信息,请参阅添加了background_rotation的PR:background_rotation

快速入门

log4rs.yaml

refresh_rate: 30 seconds
appenders:
  stdout:
    kind: console
  requests:
    kind: file
    path: "log/requests.log"
    encoder:
      pattern: "{d} - {m}{n}"
root:
  level: warn
  appenders:
    - stdout
loggers:
  app::backend::db:
    level: info
  app::requests:
    level: info
    appenders:
      - requests
    additive: false

lib.rs

use log::{error, info, warn};
use log4rs;

fn main() {
    log4rs::init_file("config/log4rs.yaml", Default::default()).unwrap();

    info!("booting up");

    // ...
}

Rust版本要求

1.69

为开发构建

  • 运行测试:cargo test --all-features
  • 使用cross运行Windows的测试:cross test --target x86_64-pc-windows-gnu
  • 运行所有单个特征的测试:./test.sh
  • 使用cross运行Windows的所有单个特征的测试:./test.sh win

许可证

许可如下

由你选择。

贡献

除非你明确声明,否则你有意提交给作品并包含在内的任何贡献,将按照上述双重许可方式授权,不附加任何额外条款或条件。

依赖关系

~0.6–7.5MB
~50K SLoC