33 个版本

0.12.2 2024 年 3 月 4 日
0.12.1 2023 年 3 月 2 日
0.12.0 2022 年 4 月 19 日
0.12.0-alpha12022 年 2 月 5 日
0.1.0 2016 年 3 月 31 日

#31 in 调试

Download history 68398/week @ 2024-04-08 73447/week @ 2024-04-15 85661/week @ 2024-04-22 83475/week @ 2024-04-29 75923/week @ 2024-05-06 88414/week @ 2024-05-13 93584/week @ 2024-05-20 83316/week @ 2024-05-27 89093/week @ 2024-06-03 91426/week @ 2024-06-10 86357/week @ 2024-06-17 91436/week @ 2024-06-24 70679/week @ 2024-07-01 77318/week @ 2024-07-08 71213/week @ 2024-07-15 71955/week @ 2024-07-22

295,753 个月下载量
729 个 crate 中使用 (直接使用 520 个)

MIT/Apache

65KB
1K SLoC

simplelog 构建状态 覆盖率状态 Crates.io Crates.io

Rust 的 log crate 简单易用的日志工具

simplelog 并不旨在提供丰富的功能,也不是最佳日志解决方案。它旨在为小型到中型项目提供一个可维护的、易于集成的工具,对于那些发现 env_logger 功能不足的情况,simplelog 应该提供一个简单的替代方案。

概念

simplelog 提供了一系列易于组合的日志工具。

  • SimpleLogger(非常基础的日志记录器,将日志记录到 stderr/out,永远不会失败)
  • TermLogger(高级终端日志记录器,将日志记录到 stderr/out,并支持彩色显示)(在不支持的平台上可以排除)
  • WriteLogger(将日志记录到实现了 Write 接口的给定结构,例如文件)
  • CombinedLogger(可以用来组合上述日志记录器)

使用方法

#[macro_use] extern crate log;
extern crate simplelog;

use simplelog::*;

use std::fs::File;

fn main() {
    CombinedLogger::init(
        vec![
            TermLogger::new(LevelFilter::Warn, Config::default(), TerminalMode::Mixed, ColorChoice::Auto),
            WriteLogger::new(LevelFilter::Info, Config::default(), File::create("my_rust_binary.log").unwrap()),
        ]
    ).unwrap();

    error!("Bright red error");
    info!("This only appears in the log file");
    debug!("This level is currently not enabled for any logger");
}

结果如下

$ cargo run --example usage
   Compiling simplelog v0.12.2 (file:///home/drakulix/Projects/simplelog)
     Running `target/debug/examples/usage`
[ERROR] Bright red error

和 my_rust_binary.log

11:13:03 [ERROR] usage: Bright red error
11:13:03 [INFO] usage: This only appears in the log file

入门

只需将以下内容添加到你的 Cargo.toml

[dependencies]
simplelog = "^0.12.2"

支持 ANSI 颜色和样式

此 crate 可以内部依赖 paris crate 来提供 ANSI 颜色和样式的支持。要使用此功能,您需要设置 paris 特性,如下所示

[dependencies]
simplelog = { version = "^0.12.2", features = ["paris"] }

在你的 Cargo.toml

之后你可以使用如下调用

info!("I can write <b>bold</b> text or use tags to <red>color it</>");

这将会自动生成所需样式的终端控制序列。

更多格式化信息: paris crate 文档

文档

贡献

如果你想为 simplelog 贡献自己的日志记录器或改进/扩展现有日志记录器,请随意创建一个 pull request。但请不要盲目假设你的日志记录器会被接受。这个库的理性在于它易于使用。这主要归结于一个小巧易用的 API,但也包括添加的依赖项数量等因素。如果你对自己的计划不确定,请随意创建一个 issue 来讨论你的想法。

编码愉快!

依赖项

~0.8–8MB
~54K SLoC