1 unstable release
Uses new Rust 2024
| 0.1.0 | Oct 13, 2025 |
|---|
#14 in #console-output
14KB
223 lines
tin-logger
基于 flexi_logger 的高性能日志库
简介
tin-logger 是一个基于 flexi_logger 构建的高性能日志库,提供了简洁易用的 API 和丰富的配置选项。支持文件日志轮转、控制台输出、自定义格式化等功能,适用于各种 Rust 应用程序的日志需求。
- 支持文件日志自动轮转和压缩
- 可配置的控制台输出重复级别
- 美观的彩色控制台输出格式
- 详细的文件日志格式,包含时间戳、位置信息
- 灵活的配置系统和构建器模式
- 高性能异步日志写入
安装
在你的 Cargo.toml 中添加依赖:
[dependencies]
tin-logger = { git = "https://gitee.com/J_Tang/tin-logger.git" }
log = "0.4"
快速开始
使用默认配置
use tin_logger::Logger;
use log::{info, warn, error};
fn main() {
// 使用默认配置初始化日志系统
Logger::init();
info!("应用程序启动");
warn!("这是一个警告信息");
error!("这是一个错误信息");
}
指定日志级别
use tin_logger::Logger;
use log::{debug, info};
fn main() {
// 只设置日志级别,其他使用默认配置
Logger::init_with_level("debug".to_string());
debug!("调试信息");
info!("普通信息");
}
自定义配置
use tin_logger::{Logger, LoggerConfig};
use log::LevelFilter;
use std::path::PathBuf;
fn main() {
let config = LoggerConfig {
level: LevelFilter::Info,
directory: PathBuf::from("./logs"),
basename: "myapp".to_string(),
suffix: "log".to_string(),
rotate_size: 50 * 1024 * 1024, // 50MB
duplicate_to_stdout: tin_logger::config::Duplicate::Info,
};
Logger::init_with_config(config).expect("日志初始化失败");
log::info!("使用自定义配置启动");
}
使用构建器模式
use tin_logger::{Logger, LoggerConfig};
use log::LevelFilter;
fn main() {
let config = LoggerConfig::builder()
.level(LevelFilter::Debug)
.directory("./app_logs")
.basename("service")
.rotate_size(100 * 1024 * 1024) // 100MB
.duplicate_to_stdout(tin_logger::config::Duplicate::Warn)
.build();
Logger::init_with_config(config).expect("日志初始化失败");
}
配置选项
LoggerConfig 字段
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
level |
LevelFilter |
Info |
日志级别过滤器 |
directory |
PathBuf |
"logs" |
日志文件存储目录 |
basename |
String |
"app" |
日志文件基础名称 |
suffix |
String |
"log" |
日志文件后缀 |
rotate_size |
u64 |
100MB |
文件轮转大小(字节) |
duplicate_to_stdout |
Duplicate |
None |
控制台输出重复级别 |
依赖
flexi_logger- 高性能日志实现log- Rust 标准日志接口config- 配置管理(可选)serde- 序列化支持(最小化特性)
License
MIT
Dependencies
~4–5.5MB
~115K SLoC