tin-logger

Crates.iotin-logger
lib.rstin-logger
version0.1.0
created_at2025-10-13 00:27:55.161706+00
updated_at2025-10-13 00:27:55.161706+00
descriptionA logging library based on flexi_logger with file rotation, console output, and custom formatting support
homepagehttps://github.com/JiabinTang/tin-logger
repositoryhttps://github.com/JiabinTang/tin-logger
max_upload_size
id1879866
size39,377
唐加彬 (JiabinTang)

documentation

README

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

Commit count: 0

cargo fmt