当前位置: 首页 > article >正文

Rust日志库tklog0.2.9—支持混合时间文件大小备份模式

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

v0.2.9 更新内容

  • 该版本主要实现支持 按时间与文件大小混合模式切割日志文件

两者方式可以设置

  • 通过 set_cutmode_by_mixed  设置
  • 通过 set_option  设置
  • 测试程序地址:  test_0_2_9.rs

一. 调用 .set_cutmode_by_mixed() 函数,参数:
  1. 文件路径  
  2. 指定文件滚动大小
  3. 时间模式
  4. 最大备份日志文件数
  5. 是否压缩备份的日志文件
#[test]
fn testlog() {
    LOG.set_cutmode_by_mixed("tklogs.log", 1 << 15,tklog::MODE::HOUR, 10, false);
    
    trace!("trace!", "this is sync log");
    debug!("debug!", "this is sync log");
    info!("info!", "this is sync log");
    warn!("warn!", "this is sync log");
    error!("error!", "this is sync log");
    fatal!("fata!", "this is sync log");
 
    thread::sleep(Duration::from_secs(3))
}

二. 调用 .set_option() 函数
#[test]
fn testlog2() {
    let mut lo = tklog::LogOption::new();
    lo.set_fileoption(tklog::handle::FileMixedMode::new("tklogs.log", 1 << 15,tklog::MODE::DAY, 10, false));
    LOG.set_option(lo);

    trace!("trace!", "this is sync log");
    debug!("debug!", "this is sync log");
    info!("info!", "this is sync log");
    warn!("warn!", "this is sync log");
    error!("error!", "this is sync log");
    fatal!("fata!", "this is sync log");    

    thread::sleep(Duration::from_secs(3))
}

日志文件切分的结果:
  • 按天与大小混合备份日期文件,如:
    • tklogs_20240521_1.log
    • tklogs_20240521_2.log
    • tklogs_20240521_3.log
    • tklogs_20240521_4.log
    • tklogs_20240522_1.log
    • tklogs_20240522_2.log
    • tklogs_20240522_3.log
    • tklogs_20240522_4.log
  • 按小时与大小混合备份日志文件,如:
    • tklogs_2024052110_1.log
    • tklogs_2024052110_2.log
    • tklogs_2024052110_3.log
    • tklogs_2024052211_1.log
    • tklogs_2024052211_2.log
    • tklogs_2024052211_3.log
  • 按月份与大小混合备份日志文件,如:
    • tklogs_202403_1.log
    • tklogs_202403_2.log
    • tklogs_202403_3.log
    • tklogs_202404_1.log
    • tklogs_202404_2.log
    • tklogs_202404_3.log

http://www.kler.cn/a/460854.html

相关文章:

  • OpenHarmony通过挂载镜像来修改镜像内容,RK3566鸿蒙开发板演示
  • net core介绍
  • 机器学习之正则化惩罚和K折交叉验证调整逻辑回归模型
  • SQL—替换字符串—replace函数用法详解
  • 将现有Web 网页封装为macOS应用
  • 【Vim Masterclass 笔记01】Section 1:Course Overview + Section 2:Vim Quickstart
  • windows下VS release调试
  • Stm32小实验1
  • 【GIS教程】高程点制作DEM并使用ArcgisPro发布高程服务Elevation Layer
  • win32汇编环境下,双击窗口程序内生成的listview列表控件的某行,并提取其内容的示例程序
  • Nmap实用语法简介
  • 使用WebRTC进行视频通信
  • 基于SC-FDE单载波频域均衡MQAM通信链路matlab仿真,包括帧同步,定时同步,载波同步,MMSE信道估计等
  • 在windows上使用vscode和cmake编译c++ 过程记录
  • git 中 工作目录 和 暂存区 的区别理解
  • 网络安全的8个热门趋势和4个渐冷趋势
  • 2 、什么是Java中的不可变类
  • 三层交换机和三层网络结构 有什么区别和联系
  • JavaWeb Servlet的getInitParameter、业务层、控制反转IOC和依赖注入DI
  • 水上救命稻草,充气救生板的关键救援效能|深圳鼎跃
  • 滴滴数据分析80道面试题及参考答案
  • 苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序
  • 【机器学习】机器学习的基本分类-自监督学习-对比学习(Contrastive Learning)
  • 解决vue-i18n在非.vue文件中,在其他js文件中无法使用的问题
  • Ubuntu 搭建SVN服务
  • 探索基于WebAssembly的下一代前端性能优化方案