tklog 0.2.1 — Rust 高性能日志库,mod 支持*匹配
tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API,支持mod独立参数设置,支持日志level独立参数设置
v0.2.1 版本更新
tklog 支持mod多级别 * 匹配子模块名
- tklog提供
set_mod_option
函数 设置Logger对象指定mod的日志参数 - 在项目中,可以使用全局LOG对象,同时对多个mod设置独立的日志参数
- 不同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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
商家营销工具架构升级总结
今年以 来 ,商家营销工具业务需求井喷,需求数量多且耗时都比较长,技术侧面临很大的压力。 因此这篇文章主要讨论营销工具前端要如何应对这样大规模的业务需求。 问题拆解 我们核心面对的问题主要如下: 1.人力有限 我们除了要支撑存量页面的日常迭代,还需要完成大量页面的新增,虽然有短期的人力支援,但总体还是捉襟见肘。 2.如何保障交付质量和体验? 商家营销工具核心的业务目标之一是体验优化,因此对前端交付页面的质量和体验,都有一定要求。而我们有大部分人力是新人,如何保证交付质量和体验? 3.支援撤出后,长尾需求如何应对? 新增页面的持续优化迭代会带来大量长尾需求。支援撤出后如何应对? 问题总结一句话其实就是:如何高效高质量地支撑相比以往更多的需求。 最初的思路其实很简单:提高代码复用率。 这样: 1.一方面提高了研发效率,以应对人力瓶颈。 2.另一方面能通过沉淀下来的标准代码,拔高整体交付产物的质量和体验下限。 统一产品形态与设计规范 前端提高代码复用率的方式,最常用的就是组件沉淀(基础组件基本配套齐全,这里主要指业务组件)。但组件沉淀的实际效果,会受很多因素的影响: 1. 业务形态是否稳定?...
- 下一篇
开源 OA 办公系统 — 勾股 OA 5.1.3 国庆稳定版发布
勾股 OA 办公系统是一款简单实用的开源的企业办公系统。系统集成了系统设置、附件管理、人事管理、行政管理、消息管理、企业公告、知识网盘、审批流程设置、办公审批、日常办公、财务管理、客户管理、合同管理、项目管理、任务管理等功能模块。系统简约,易于功能扩展,方便二次开发,可以用来做日常 OA,CRM,ERP,业务管理等系统。 勾股OAv5.1.3发布啦,主要更新了如下功能: 1、引用model查询优化任务列表和工作记录列表; 2、侧边栏关闭按钮优化,提升了操作体验:简约而优雅; 3、客户默认填写联系人性别判断; 4、优化客户详情、项目详情页面; 5、优化附件管理,优化知识网盘,office文件支持通过微软的接口预览; 6、员工详情、员工档案的上级领导没展示出来问题修复; 7、结合客户的不同的安装反馈,优化系统的安装流程; 8、人事调动bug修复; 9、前端tool.js组件新增ask询问弹层控件,提升开发效率,体验更佳; 10、前端oaPicker组件添加操作按钮参数,可实现展示1个按钮,两个按钮,三个按钮; 11、前端layui升级到最新的2.9.17稳定版; 12、删除资产分类bug修...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16