1use ftlog::{
2 appender::{file::Period, ChainAppenders, FileAppender},
3 info, LoggerGuard,
4};
5use log::LevelFilter;
6use time::Duration;
7
8fn init() -> LoggerGuard {
9 let writer = FileAppender::builder()
11 .path("./current.log")
12 .rotate(Period::Minute)
13 .expire(Duration::minutes(2))
14 .build();
15 ftlog::Builder::new()
16 .max_log_level(LevelFilter::Info)
18 .root(ChainAppenders::new(vec![
20 Box::new(writer),
21 Box::new(std::io::stdout()),
22 ]))
23 .filter("ftlog::appender", "ftlog-appender", LevelFilter::Error)
25 .appender("ftlog-appender", FileAppender::new("ftlog-appender.log"))
26 .try_init()
27 .expect("logger build or set failed")
28}
29
30fn main() {
31 let _guard = init();
32 info!("Hello, world!");
33 for i in 0..300 {
34 info!("running {}!", i);
35 info!(limit=3000i64; "limit running{} !", i);
36 std::thread::sleep(std::time::Duration::from_secs(1));
37 }
38}