use ftlog::{
appender::{file::Period, ChainAppenders, FileAppender},
info, LoggerGuard,
};
use log::LevelFilter;
use time::Duration;
fn init() -> LoggerGuard {
let writer = FileAppender::builder()
.path("./current.log")
.rotate(Period::Minute)
.expire(Duration::minutes(2))
.build();
ftlog::Builder::new()
.max_log_level(LevelFilter::Info)
.root(ChainAppenders::new(vec![
Box::new(writer),
Box::new(std::io::stdout()),
]))
.filter("ftlog::appender", "ftlog-appender", LevelFilter::Error)
.appender("ftlog-appender", FileAppender::new("ftlog-appender.log"))
.try_init()
.expect("logger build or set failed")
}
fn main() {
let _guard = init();
info!("Hello, world!");
for i in 0..300 {
info!("running {}!", i);
info!(limit=3000i64; "limit running{} !", i);
std::thread::sleep(std::time::Duration::from_secs(1));
}
}