fast_log 1.7.8

Rust async log High-performance asynchronous logging
Documentation
#[cfg(test)]
mod test {
    use fast_log::appender::{Command, FastLogRecord, LogAppender};
    use fast_log::consts::LogSize;
    use fast_log::plugin::file_name::FileName;
    use fast_log::plugin::file_split::{FileSplitAppender, RollingType, Keep, RawFile, Rolling, KeepType};
    use fast_log::plugin::packer::LogPacker;
    use fastdate::DateTime;
    use log::Level;
    use std::fs::remove_dir_all;
    use std::thread::sleep;
    use std::time::{Duration, SystemTime};

    #[test]
    fn test_send_pack() {
        let _ = remove_dir_all("target/test/");
        let mut appender = FileSplitAppender::new::<RawFile>(
            "target/test/",
            Box::new(Rolling::new(RollingType::BySize(LogSize::MB(1)))),
            Box::new(KeepType::All),
            Box::new(LogPacker {}),
        )
            .unwrap();
        appender.do_logs(&[FastLogRecord {
            command: Command::CommandRecord,
            level: Level::Error,
            target: "".to_string(),
            args: "".to_string(),
            module_path: "".to_string(),
            file: "".to_string(),
            line: None,
            now: SystemTime::now(),
            formated: "".to_string(),
        }]);
        appender.send_pack(appender.temp_name().replace(".log", &DateTime::now().format("YYYY-MM-DDThh-mm-ss.000000.log")), None);
        sleep(Duration::from_secs(1));
        let rolling_num = KeepType::KeepNum(0).do_keep("target/test/", "temp.log");
        assert_eq!(rolling_num, 1);
        let _ = remove_dir_all("target/test/");
    }


    #[test]
    fn test_extract_file_name() {
        let p = "temp.log".extract_file_name();
        assert_eq!(p, "temp.log");
    }

    #[test]
    fn test_extract_file_name2() {
        let p = "logs/temp.log".extract_file_name();
        assert_eq!(p, "temp.log");
    }

    #[test]
    fn test_extract_file_name3() {
        let p = "logs/".extract_file_name();
        assert_eq!(p, "");
    }

    #[test]
    fn test_extract_file_name4() {
        let p = "C:/logs".extract_file_name();
        assert_eq!(p, "logs");
    }

    #[test]
    fn test_extract_file_name5() {
        let p = "C:/logs/aa.log".extract_file_name();
        assert_eq!(p, "aa.log");
    }

    #[test]
    fn test_extract_file_name6() {
        let p = "C:\\logs\\aa.log".extract_file_name();
        assert_eq!(p, "aa.log");
    }
}