Rust 高性能日志库 tklog 0.0.3 — 支持标准 log 库 API
tklog是rust高性能结构化日志库,支持同步日志,异步日志,支持自定义日志的输出格式,支持按时间,按文件大小分割日志文件,支持日志文件压缩备份,支持官方日志库标准API
tklog 0.0.3版本主要更新
- tklog实现了官方Log接口,支持官方标准化日志API的调用
- 实现了官方log库API的异步场景调用。
项目引入
[dependencies] tklog = "0.0.3" # "0.0.x" 当前版本
1. 启用官方log库API的方法
tklog通过调用 uselog()
函数 来启用官方log的API支持
使用示例
use std::{thread, time::Duration}; use tklog::{Format, LEVEL, LOG}; fn test_synclog() { //初始化 LOG.set_console(true) .set_level(LEVEL::Debug) .set_format(Format::LevelFlag | Format::Microseconds | Format::ShortFileName) .set_cutmode_by_size("logsize.log", 10000, 10, true) .uselog(); //启用官方log库 log::trace!("trace>>>>{}{}{}{}{}", "aaaa", 1, 2, 3, 4); //trace级别小于设置的Debug,则不执行打印 log::debug!("debug>>>>{}{}",1,2); log::info!("info log"); log::warn!("warn log"); log::error!("error log"); thread::sleep(Duration::from_secs(1)) }
执行结果:
[DEBUG] 09:10:56.857540 logapi.rs 19:debug>>>>12 [INFO] 09:10:56.857824 logapi.rs 20:info log [WARN] 09:10:56.857878 logapi.rs 21:warn log [ERROR] 09:10:56.857890 logapi.rs 22:error log
2. 异步场景中启用 log库API
use std::{thread, time::Duration}; use tklog::{Format, LEVEL, ASYNC_LOG}; async fn test_synclog() { //初始化 ASYNC_LOG.set_console(false) .set_level(LEVEL::Trace) .set_cutmode_by_size("asynclogsize.log", 10000, 10, true).await .uselog(); //启用官方log库 log::trace!("trace async log>>>>{}{}{}{}{}", "aaaaaaaaa", 1, 2, 3, 4); log::debug!("debug async log>>>>{}{}",1,2); log::info!("info async log"); log::warn!("warn async log"); log::error!("error async log"); tokio::time::sleep(tokio::time::Duration::from_secs(3)).await; }
执行结果:
[TRACE] 2024-05-31 09:18:34 :trace async log>>>>aaaaaaaaa1234 [DEBUG] 2024-05-31 09:18:34 :debug async log>>>>12 [INFO] 2024-05-31 09:18:34 :info async log [WARN] 2024-05-31 09:18:34 :warn async log [ERROR] 2024-05-31 09:18:34 :error async log
注意:
调用官方log库API属于全局单例调用,而使用 LOG.uselog() 或 ASYNC_LOG.uselog()启用API 是常规实例与异步实例的不同调用 ,LOG与ASYNC_LOG是不同实例,调用uselog()后,会将log库的实际执行实例设置为本身。在项目中如果反复调用uselog(),要防止后面执行实例覆盖前面实例后可能出现的日志打印问题。
tklog相关信息

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
可视化表单设计 FcDesigner v3.1.0 发布,新增 12 个组件,支持事件配置等
FcDesigner 是一款可视化表单设计器组件。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。 本项目采用 Vue 和 ElementPlus 进行页面构建,内置多语言解决方案,支持二次扩展开发,支持自定义组件扩展。 兼容Vue2和Vue3版本 帮助文档|在线演示|源码下载 3.2.0 (2024-06-01) 增加12个可拖拽组件,目前共内置了36个可拖拽组件 新增表格布局 新增表格表单组件 增加表单结构预览 增加默认值录入功能 增加表单和组件的事件配置 增加多端预览和操作撤销和重做 安装 npm install @form-create/designer@next 引入 CDN: <link href="https://unpkg.com/element-plus@2.0.1/dist/index.css"></link> <script src="https://unpkg.com/vue@next"></script> <script src="https://unpkg....
- 下一篇
RetroArch 1.19.0 & 1.18.0 发布
RetroArch 是一个模拟器、游戏引擎和媒体播放器的前端,用户可在各种各样的计算机和游戏机上运行经典游戏。除此之外,用户还能够从 RetroArch 中运行原始游戏光盘(CD)。 RetroArch 1.19.0 现已发布。同时发布的还有 1.18.0 版本,因此此次更新也包含了 1.18.0 的所有更改。 更新内容如下: 1.19.0 AI:将 AI 翻译恢复为以前的版本(修复翻译无法与硬件渲染核心配合使用的问题) APPLE:尝试使用系统首选语言 APPLE:正确注册唯一文件类型 APPLE/MFI:通过 MFi 改进 Switch Online 控制器支持 音频:在菜单切换中恢复音频切换 CHEEVOS:当未加载 RetroAchievements 游戏时,构建默认的 RetroAchievements memory map CHEEVOS:更新至 rcheevos 11.3 CHEEVOS:修复 hardcore在未启用的情况下表现为已启用的问题 CLANG:修复 clang error incompatible-pointer-types-discards-qualifi...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块