tklog 0.2.1 — Rust 高性能日志库,mod 支持*匹配


tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API,支持mod独立参数设置,支持日志level独立参数设置
  1. 简介
  2. Github地址
  3. 仓库地址
  4. 《tklog与log4rs 的基准测试》

v0.2.1 版本更新

tklog 支持mod多级别 * 匹配子模块名

  1. tklog提供set_mod_option 函数 设置Logger对象指定mod的日志参数
  2. 在项目中,可以使用全局LOG对象,同时对多个mod设置独立的日志参数
  3. 不同mod可以设置不同的日志级别,日志格式,日志文件等

set_mod_option 示例:

tklog::LOG.set_mod_option("testlog::module1",LogOption{level:Some(LEVEL::Debug),console: Some(false),format:None,formatter:None,fileoption: Some(Box::new(FileTimeMode::new("day.log", tklog::MODE::DAY, 0,true)))});
  • testlog::module1 为设置的模块名,可以通过rust内置宏 module_path!() 打印出当前模块名
  • 当tklog在模块 testlog::module1 中使用时,将tklog将使用该LogOption对象

set_mod_option 示例2:

tklog::LOG.set_mod_option("testlog::*",LogOption{level:Some(LEVEL::Debug),console: Some(false),format:None,formatter:None,fileoption: Some(Box::new(FileTimeMode::new("day.log", tklog::MODE::DAY, 0,true)))});
  • testlog::* tklog支持用*匹配所有子模块,testlog::*表示testlog的所有子模块
  • testlog::module1::* 表示testlog::module1的所有子模块

LogOption对象说明

  • level 日志级别
  • format 日志格式
  • formatter 日志输出自定义格式
  • console 控制台日志设置
  • fileoption 文件日志设置

完整的mod示例

mod module2 {
use std::{thread, time::Duration};
use tklog::{handle::FileTimeMode, LogOption, LEVEL};
pub fn testmod() {
tklog::LOG.set_mod_option("testlog::module2::*", LogOption { level: Some(LEVEL::Info), format: None, formatter: None, console: None, fileoption: Some(Box::new(FileTimeMode::new("module2.log", tklog::MODE::DAY, 0, true))) });
}
mod m2 {
pub fn testmod() {
tklog::debug!("module2,tklog api,LOG debug log>>", 123);
tklog::info!("module2,tklog api,LOG info log>>", 456);
thread::sleep(Duration::from_secs(1))
}
}
}

#[test]
fn testmod2() {
module2::m2::testmod();
}

说明testlog::module2::*

匹配mod  testlog的下 mod module2下的所有mod

0.2.1 新增功能性能压测数据

说明:mod采用*匹配后的打印性能与常规日志打印性能基本一致。


快速使用tklog

项目引入

[dependencies]
tklog = "0.2.1" # "0.0.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

相關推薦

2024-06-22

tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API,支持mod独立参数设置 tklog相关信息 官网

2024-10-23

tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API,支持mod独立参数设置,支持日志level独立参数

2024-10-19

tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API,支持mod独立参数设置,支持日志level独立参数

2024-06-04

tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API tklog 0.0.3版本主要更新 tklog实现了官方Log接

2024-08-27

tklog是rust高性能结构化日志库 易用,高效,结构化,控制台日志,文件日志,文件切割,文件压缩,同步打印,异步打印 功能 功能支持:控制台日志,文件日志,同步日志,异步日志 日志级别设置:提供与标准库同级

2024-05-29

如果是格式化日志输出,则为4µs/op以上。(可以参考《 高性能日志库go-logger v2.0.3》中对各日志库的压测数据)。 在异步场景中,tklog提供了对应的方法,支持异步调用。异步方法最大的好处并非在性能上,而是它不会阻塞所在

2024-08-12

,其它应用配置更新后,无中断式的优雅重启程序 访问日志的模板化配置,已支30多个相关属性的配置,可按需指定输出各种参数与指标 WEB形式的管理后台界面,无需学习,简单易用 开箱即用的let's encrypttls证书,仅需配置

2024-07-24

本引入了内存效率高的向量数据类型、增强的索引功能(支持空字段和缺失字段)、简化的查询语法以及扩展的地理空间搜索功能。 具体包括,引入了新的BFLOAT16和FLOAT16向量数据类型,在保持准确性的同时减少了向量所消耗的

2023-04-18

码库,而不是拒绝由于之前存在的代码库。 增加了跟踪日志中的调试输出。 不完全下载:在下载完成之前使用临时目录,从而避免部分下载问题。 诊断 归档不再提供生命周期事件作为数据源,仅提供“检查”和“日志

2023-06-22

Rust 项目宣布成立新的顶级治理机构:领导委员会(Rust Leadership Council)。该领导委员会的成立,标志着此前老是闹幺蛾子的 Rust 核心团队和临时领导者职位都将被取消,此后将由 Rust 理事承担顶级治理问题的责任。 背景提要

2023-03-11

for PathBuf Other changes  其他改动 Rust 中的 Android 平台支持现在以 NDK r25 为目标,这对应于支持的最低 API 级别 19 (KitKat)。 查看 Rust 、 Cargo和Clippy中发生的所有变化。   更新公告:https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.ht

2024-08-06

项目介绍 Rudis 是一个采用 Rust 语言编写得高性能键值存储系统,旨在利用 Rust 语言的优势来重新复现 Rudis 的核心功能,以满足用户对高性能、可靠性和安全性的需求,同时保证与 Rudis API 的兼容。 跨平台,兼容 windows、linux

2023-08-24

bsp;安装对应的 target 才行。 更多上下文,见:#4049 更新日志 新特性 #4002: 增加 soname 支持 #1613: 为 add_vectorexts 增加 avx512 和 sse4.2 支持 #2471: 添加 set_encodings API 去设置源文件和目标文件的编码 #4071: 支持 sdcc 的 stm8 汇编

2024-08-09

构。 生成的代码基于go语言,使用gin作为web框架。目前支持MariaDB,MySQL,PostgreSQL和Oracle四种数据库。支持生成Vue和ElementUI的基于Node.js的独立前端。支持Excel,PDF两种数据导出格式。 项目图片 最新大版本号 正在研发的最新大版