Rust 日志库 tklog v0.1.0:支持设置日志级别独立日志格式输出

来源: 投稿
作者: donnie4w
2024-08-26 11:22:00

tklog是rust高性能结构化日志库

易用,高效,结构化,控制台日志,文件日志,文件切割,文件压缩,同步打印,异步打印


功能

  • 功能支持:控制台日志,文件日志,同步日志,异步日志
  • 日志级别设置:提供与标准库同级别日志打印: trace,debug,info,warn,error,fatal
  • 格式化输出:支持自定义日志的输出格式,包括日志级别标识、格式化时间、日志文件位置 等元素,并支持自定义格式调整。
  • 按时间文件切割:按小时,天,月份切割日志文件
  • 按大小文件切割:按指定大小切割日志文件
  • 文件数回滚:指定最大备份文件数,支持自动删除旧日志文件,并防止日志文件数过多。
  • 文件压缩:支持压缩归档备份日志文件。
  • 支持官方日志库标准API
  • 支持按模块设置独立日志参数
  • 支持自定义日志处理函数的功能

  1. 项目地址
  2. 《tklog与log4rs 的基准测试》

v0.1.0 版本更新

tklog 支持日志级别设置独立日志格式参数

tklog 通过 set_level_option() 设置日志级别的独立日志参数

示例

#[test]
fn testlog() {
    //将Info级别的日志格式设置为 Format::LevelFlag
    //将Fatal级别的日志格式设置为 Format::LevelFlag | Format::Date
    LOG.set_level_option(LEVEL::Info, LevelOption { format: Some(Format::LevelFlag), formatter: None })
    .set_level_option(LEVEL::Fatal, LevelOption { format: Some(Format::LevelFlag | Format::Date), formatter: None});

    trace!("this is trace log");
    debug!("this is debug log");
    info!("this is info log");
    warn!("this is warn log");
    error!("this is error log");
    fatal!("this is fatal log");
    thread::sleep(Duration::from_secs(1))
}

执行结果

---- testlog stdout ----
[DEBUG] 2024-08-24 15:06:02 test_0100.rs 17:this is debug log
[INFO] this is info log
[WARN] 2024-08-24 15:06:02 test_0100.rs 19:this is warn log
[ERROR] 2024-08-24 15:06:02 test_0100.rs 20:this is error log
[FATAL] 2024-08-24 this is fatal log

tklog是rust高性能结构化日志库 [English]

易用,高效,结构化,控制台日志,文件日志,文件切割,文件压缩,同步打印,异步打印


功能

  • 功能支持:控制台日志,文件日志,同步日志,异步日志
  • 日志级别设置:提供与标准库同级别日志打印: trace,debug,info,warn,error,fatal
  • 格式化输出:支持自定义日志的输出格式,包括日志级别标识、格式化时间、日志文件位置 等元素,并支持自定义格式调整。
  • 按时间文件切割:按小时,天,月份切割日志文件
  • 按大小文件切割:按指定大小切割日志文件
  • 文件数回滚:指定最大备份文件数,支持自动删除旧日志文件,并防止日志文件数过多。
  • 文件压缩:支持压缩归档备份日志文件。
  • 支持官方日志库标准API
  • 支持按模块设置独立日志参数
  • 支持自定义日志处理函数的功能

使用方法简述

项目引入

[dependencies]
tklog = "0.1.0"   #   "0.x.x" 当前版本

示例

use tklog::{trace,debug, error, fatal, info,warn}
fn testlog() {
    trace!("trace>>>>", "aaaaaaaaa", 1, 2, 3, 4);
    debug!("debug>>>>", "bbbbbbbbb", 1, 2, 3, 5);
    info!("info>>>>", "ccccccccc", 1, 2, 3, 5);
    warn!("warn>>>>", "dddddddddd", 1, 2, 3, 6);
    error!("error>>>>", "eeeeeeee", 1, 2, 3, 7);
    fatal!("fatal>>>>", "ffffffff", 1, 2, 3, 8);
}

打印结果:

[TRACE] 2024-05-26 11:47:22 testlog.rs 27:trace>>>>,aaaaaaaaa,1,2,3,4
[DEBUG] 2024-05-26 11:47:22 testlog.rs 28:debug>>>>,bbbbbbbbb,1,2,3,5
[INFO] 2024-05-26 11:47:22 testlog.rs 29:info>>>>,ccccccccc,1,2,3,5
[WARN] 2024-05-26 11:47:22 testlog.rs 30:warn>>>>,dddddddddd,1,2,3,6
[ERROR] 2024-05-26 11:47:22 testlog.rs 31:error>>>>,eeeeeeee,1,2,3,7
[FATAL] 2024-05-26 11:47:22 testlog.rs 32:fatal>>>>,ffffffff,1,2,3,8
展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
2 收藏
分享
返回顶部
顶部