docs.rs failed to build rust-happy-log-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
rust-happy-log 😊
一个美观、高性能的 Rust 日志库,支持控制台和文件输出。
✨ 特性
- 🎨 美观输出: 支持彩色输出和 emoji 图标,让日志更易读
- 🚀 高性能: 异步写入,主线程零阻塞,使用 crossbeam-channel 实现高效队列
- 🔒 线程安全: 全局单例模式,多线程环境下安全使用
- 📁 文件轮转: 支持按文件大小自动轮转,自动管理备份文件
- ⚙️ 灵活配置: Builder 模式配置,简单易用
- 📍 位置信息: 自动记录文件名和行号,快速定位问题
- 🎯 零依赖侵入: 全局单例,各模块无需传递 Logger 实例
📦 安装
在 Cargo.toml 中添加依赖:
[]
= "0.1"
🚀 快速开始
基础使用
use ;
输出到文件
use ;
多模块使用(全局单例)
use ;
// 模块 A
// 模块 B
🎨 输出示例
控制台彩色输出效果:
[2025-10-06 15:24:30.123] 🔍 TRACE 这是追踪级别日志
[2025-10-06 15:24:30.124] 🐛 DEBUG 这是调试级别日志
[2025-10-06 15:24:30.125] ℹ️ INFO 应用启动成功
[2025-10-06 15:24:30.126] ⚠️ WARN 这是一个警告
[2025-10-06 15:24:30.127] ❌ ERROR 发生错误
⚙️ 配置选项
完整配置示例
use ;
new
// 日志级别
.level
// 控制台配置
.console // 启用控制台输出
.console_color // 彩色输出
.console_emoji // emoji 图标
.console_thread // 显示线程 ID
.console_location // 显示文件位置(文件名:行号)
// 文件配置
.file // 日志文件路径
.file_max_size // 最大 10MB
.file_max_backups // 保留 5 个备份文件
.init
.expect;
日志级别
Level::Trace: 最详细的日志,用于追踪程序执行Level::Debug: 调试信息Level::Info: 一般信息(默认)Level::Warn: 警告信息Level::Error: 错误信息
运行时调整级别
use ;
// 获取全局 Logger 并调整级别
if let Ok = global
📝 可用宏
trace!;
debug!;
info!;
warn!;
error!;
所有宏都支持 format! 风格的格式化。
🏗️ 架构设计
核心特性
- 全局单例: 使用
once_cell::OnceCell实现线程安全的全局实例 - 异步写入: 后台线程处理日志写入,主线程零阻塞
- 高性能队列: 使用
crossbeam-channel实现无锁队列 - 优雅关闭: 程序退出时自动刷新所有日志
性能优化
- 使用有界队列(容量 10000)避免内存无限增长
- 非阻塞发送,队列满时丢弃日志而不阻塞主线程
- 使用
parking_lot::Mutex替代标准库 Mutex,性能更优 - 文件写入使用
BufWriter缓冲,减少系统调用
📚 示例
查看 examples/ 目录获取更多示例:
# 基础使用
# 文件输出
# 多模块使用
# 高级配置
🔧 开发
# 检查代码
# 运行测试
# 格式化代码
# Clippy 检查
# 构建文档
📄 许可证
本项目采用双许可证:
- MIT License
- Apache License 2.0
您可以选择其中任意一个许可证使用本项目。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📮 联系方式
- 仓库: https://github.com/yourusername/rust-happy-log
- 问题反馈: https://github.com/yourusername/rust-happy-log/issues
🙏 致谢
本项目使用了以下优秀的 Rust 库:
colored- 彩色终端输出crossbeam-channel- 高性能并发通道once_cell- 单例模式支持thiserror- 错误处理chrono- 时间处理parking_lot- 高性能同步原语