#logging #logger #formatting #ansi-colors

twyg

为 Rust 应用程序提供的轻量级日志配置

17 个不稳定版本 (3 个重大更改)

0.4.1 2024 年 1 月 4 日
0.3.0 2024 年 1 月 2 日
0.2.0 2023 年 3 月 11 日
0.1.10 2022 年 11 月 8 日
0.1.7 2020 年 3 月 4 日

#316值格式化

Download history 147/week @ 2024-04-16 6/week @ 2024-04-23 1/week @ 2024-05-28 83/week @ 2024-07-23 54/week @ 2024-07-30

每月 137 次下载
7 个 crate 中使用 (6 个直接使用)

Apache-2.0

20KB
234

twyg

为 Rust 应用程序提供的轻量级日志配置

我习惯了使用 Clojure 中的 Twig、LFE 中的 Logjam 和 Go 中的 zylog 来记录应用程序,因此这里为 Rust 提供了类似的东西。

版本警告

  • v0.3 - 由于远离不受支持的(且不安全的)colors 库,引入了回归,因此无法再禁用日志输出的 ANSI 颜色。
  • v0.4 - 由于 OwoColors 的更复杂性质,需要进行大规模代码重构来修复 v0.3 的颜色回归,并在此过程中引入了一些破坏性更改,包括结构体重命名、新字段等。

使用方法

首先,更新你的 Cargo.toml 的依赖项部分

[dependencies]
twyg = "0.4"

我喜欢将我的日志配置放在我的应用程序的 YAML 配置文件中,但无论你喜欢如何存储配置,你都需要为你的首选机制填充 twyg::Opts 结构

use twyg::{self, level};

let opts = twyg::Opts{
    coloured: true,
    level: level::debug(),
    report_caller: true,

    ..Default::default()
};

match twyg::setup(&opts) {
    Ok(_) => {},
    Err(error) => {
        panic!("Could not setup logger: {:?}", error)
    },
};

支持以下选项

  • coloured:设置为 false 将禁用日志输出中的 ANIS 颜色
  • file:提供一个文件路径,并将输出也记录到该文件
  • level:不区分大小写的日志级别
  • report_caller:设置为 true 将输出日志调用所在的文件名和行号

一旦调用设置函数,所有后续调用标准 Rust 日志宏都将使用此配置,提供如下输出

上图中的输出(点击查看全尺寸)来自运行 examples 目录中的演示。

配置

config 库配合使用非常顺畅

  1. 设置一些 YAML

    logging:
        coloured: true
        level: debug
        report_caller: true
    
  2. 在配置结构中添加条目

    #[derive(Debug, Deserialize)]
    pub struct YourAppConfig {
        ...
        pub logging: twyg::Opts,
        ...
    }
    
  3. YourAppConfig 创建一个构造函数(请参阅配置库的文档和示例)

  4. 构建配置

    let cfg = YourAppConfig::default().unwrap();
    
  5. 将日志配置传递给 twyg

    match twyg::setup(&cfg.logging) {
        Ok(_) => {}
        Err(error) => panic!("Could not setup logger: {error:?}"),
    };
    

许可证

版权所有 © 2020-2024,Oxur集团

Apache许可证,版本2.0

依赖项

~2-10MB
~91K SLoC