33 个版本
0.12.2 | 2024 年 3 月 4 日 |
---|---|
0.12.1 | 2023 年 3 月 2 日 |
0.12.0 | 2022 年 4 月 19 日 |
0.12.0-alpha1 | 2022 年 2 月 5 日 |
0.1.0 | 2016 年 3 月 31 日 |
#31 in 调试
295,753 个月下载量
在 729 个 crate 中使用 (直接使用 520 个)
65KB
1K SLoC
simplelog
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