9 个版本 (破坏性更新)
0.8.0 | 2023 年 9 月 29 日 |
---|---|
0.7.1 | 2023 年 9 月 27 日 |
0.6.0 | 2023 年 9 月 15 日 |
0.5.0 | 2023 年 7 月 14 日 |
0.1.0 | 2023 年 7 月 1 日 |
#309 in 调试
3,083 每月下载量
在 5 crates 中使用
44KB
909 代码行
Handsome Logger
Handsome Logger 旨在成为快速、易于使用且可配置的日志记录器。
这是从 simplelog.rs 的 70f4dcb6c20de819b68a4c52988e850403f779db
提交中派生出来的,并使用与原始项目相同的许可证。
我创建它是因为这个库的格式化能力对我来说不足,并且对其进行“修复”所需做出的更改太大。
功能
- 多个日志记录器 - SimpleLogger(最简单且最稳定的)、TermLogger(SimpleLogger + 彩色输出)、WriteLogger(可以保存日志,例如到文件)、CombinedLogger(可以组合多个日志记录器并保存日志,既可以保存到文件,也可以保存到终端)
- 默认使用本地时间偏移量而不是 UTC - 这可以轻松禁用
- 可自定义的格式 - 可以自定义每个元素,例如时间戳、模块名称、日志级别
- 彩色输出 - 您可以为日志消息的任何部分着色
- 易于使用 - 对于大多数用例,可以在几行代码中轻松配置库
- 可以通过环境变量设置日志级别,例如
RUST_LOG=error ./app
- 过滤消息 - 您可以根据自己的函数忽略任何消息
- 多个日志消息格式化程序(您可以多次使用它们 - 没有人可以阻止您)
[_line] - prints line of code where log was called or 0 if cannot read line
[_file] - prints full project path to file where log was called if is inside repository of full path if is outside, or "<unknown>" if cannot read file path
[_file_name] - prints file name where log was called or "<unknown>" if cannot read file name
[_module] - prints module name where log was called or "<unknown>" if cannot read module name
[_msg] - prints user log message
[_time] - prints time of logged message
[_level] - prints log level (INFO, DEBUG, etc.)
[_thread_id] - prints thread id
[_thread_name] - prints thread name
[_process_id] - prints process id
[_color_start], [_color_end] - starts and ends colorization of log message
示例用法
首先将以下两行添加到 Cargo.toml 中
handsome_logger = "0.8"
log = "0.4"
use handsome_logger::{ColorChoice, Config, TermLogger, TerminalMode};
use log::*;
fn main() {
handsome_logger::init().unwrap();
// which is simpler alternative to
// TermLogger::init(Config::default(), TerminalMode::Mixed, ColorChoice::Auto).unwrap();
trace!("Got TRACE");
debug!("Got DEBUG");
info!("Got INFO");
warn!("Got WARNING");
error!("Got ERROR");
}
应该打印
21:20:22 [INFO] terminal_logging: Got INFO
21:20:22 [WARN] terminal_logging: Got WARNING
21:20:22 [ERROR] terminal_logging: Got ERROR
示例文件夹包含以下示例
- 格式化日志
- 将日志保存到文件并旋转它
- 使用多个日志记录器
- 彩色终端输出
- 过滤消息
许可证
Apache 2.0 或 MIT,任选其一。
版权所有 (c) 2023 Rafał Mikrut
版权所有 (c) 2015-2023 Victor Brekenfeld 及贡献者(完整列表见 https://github.com/Drakulix/simplelog.rs/graphs/contributors)
依赖关系
~1–9MB
~60K SLoC