#logging #log #local-time #log-level #filelog #filename

handsome_logger

快速、简洁且易于使用的日志记录器

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 调试

Download history 697/week @ 2024-03-13 773/week @ 2024-03-20 711/week @ 2024-03-27 577/week @ 2024-04-03 528/week @ 2024-04-10 617/week @ 2024-04-17 607/week @ 2024-04-24 610/week @ 2024-05-01 491/week @ 2024-05-08 555/week @ 2024-05-15 494/week @ 2024-05-22 562/week @ 2024-05-29 703/week @ 2024-06-05 525/week @ 2024-06-12 768/week @ 2024-06-19 831/week @ 2024-06-26

3,083 每月下载量
5 crates 中使用

MIT/Apache

44KB
909 代码行

Handsome Logger

Handsome Logger 旨在成为快速、易于使用且可配置的日志记录器。

这是从 simplelog.rs70f4dcb6c20de819b68a4c52988e850403f779db 提交中派生出来的,并使用与原始项目相同的许可证。

我创建它是因为这个库的格式化能力对我来说不足,并且对其进行“修复”所需做出的更改太大。

Example

功能

  • 多个日志记录器 - 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