Rust使用fast_log

toml

log = "0.4"
fast_log = { version = "1.7", features = ["lz4", "zip", "gzip"] }

rs

use fast_log::config::Config;
use fast_log::plugin::file_split::{RollingType, KeepType, DateType, Rolling};
use std::thread::sleep;
use std::time::Duration;
use fast_log::plugin::packer::LogPacker;
use fast_log::FastLogFormatJson;
use fast_log::FastLogFormat;
use log::LevelFilter;

fn main() {
    fast_log::init(Config::new()
        .file("runtime/logs/app.log")  //日志名可以自定义
        .chan_len(Some(100000))       // 异步通道
        .console()                    
        .file_split("runtime/logs/", Rolling::new(RollingType::ByDate(DateType::Day)), KeepType::KeepNum(2), LogPacker {}, ) //日志轮转
        .format(FastLogFormatJson::new())   //日志格式为json
    ).unwrap();
    for _ in 0..6 {
        log::info!("Commencing yak shaving");
    }
    log::logger().flush();  //这个好像必须得有,不然日志无法刷新到文件内,或者上面的chan_len设置的很小,比如小于当前循环的6,就不用写flush了
    println!("you can see log files in path: {}", "runtime/logs/")
}
posted @ 2025-09-16 16:50  朝阳1  阅读(6)  评论(0)    收藏  举报