toolkit-rs
一个轻量的 Rust 工具库,围绕以下几类常用能力做了封装:
- 时间格式化
- 文件日志初始化与滚动清理
- panic 捕获与落盘
- 基于 Tokio 的延迟退出 / 延迟重启辅助函数
仓库地址:https://github.com/yaobo-lab/toolkit-rs
功能概览
time
始终可用,无需开启 feature。
get_local_time(): 返回当前本地时间字符串DATETIME_FORMAT: 默认时间格式常量,格式为%Y.%m.%d %H:%M:%S
logger feature
启用后提供日志初始化能力,底层基于 flexi_logger + log。
- 支持日志级别配置
- 支持日志文件大小滚动
- 支持按天保留或按文件数量保留
- 支持同时输出到控制台
- 支持多种输出格式
可用格式:
LogStyle::DefaultLogStyle::LineLogStyle::ModuleLogStyle::Full
核心入口:
logger::setup(LogConfig)
panic_handle feature
启用后提供 panic hook:
- 记录 panic 时间、线程、位置、版本信息
- 输出 backtrace
- 将内容写入
panic.log或系统临时目录中的panic.log - 可配置 panic 后是否立即退出进程
核心入口:
painc::set_panic_handler(PaincConf)
说明:模块名当前为 painc,这是仓库现有公开 API 的一部分,README 按实际代码说明。
其他辅助函数
库根模块还提供两个异步辅助函数:
after_app_exist(sec): 延迟退出当前进程after_reboot(sec): Linux 下延迟执行系统重启,Windows 下仅输出警告
这两个函数内部使用 Tokio 任务调度。
安装
Cargo.toml 示例:
[]
= { = "1.0.22", = ["logger", "panic_handle"] }
如果你只需要时间工具:
[]
= "1.0.22"
Feature Flags
[]
= { = "1.0.22", = ["logger"] }
logger: 启用日志模块panic_handle: 启用 panic 捕获模块
当前仓库更推荐至少启用 logger feature 使用;因为库中部分辅助函数会引用 log 宏。
快速开始
1. 时间工具
use get_local_time;
2. 初始化日志
use ;
3. 设置 panic 处理
use ;
4. 组合使用
use process;
use ;
运行示例
仓库内置示例:
API 导出
库对部分常用依赖做了 re-export,便于统一使用:
toolkit_rs::anyhowtoolkit_rs::chronotoolkit_rs::serdetoolkit_rs::AppResult
开发与验证
已在当前仓库验证:
补充说明:
- 当前
cargo test在不启用 feature 的情况下会编译失败 tests/testcase.rs目前仅包含基础占位测试
许可证
MIT License,见 LICENSE。