use std::fs;
use std::time::Duration;
use std::{path::PathBuf, thread::sleep};
use exec_logger::log_level::LogLevel;
use exec_logger::{config, log, log_level};
#[test]
fn test_config() {
let config = config::LoggerConfiguration::new(
PathBuf::from("test_files"),
"LOG",
Some(7),
Some(5),
Some(log_level::LogLevel::Info),
);
println!("Config created = {:?}", config);
}
#[test]
fn test_log() {
let config = config::LoggerConfiguration::new(
PathBuf::from("test_files"),
"LOG",
Some(7),
Some(5),
Some(log_level::LogLevel::Info),
);
println!("Config created = {:?}", config);
log::info("Message 1");
log::initialize(config);
log::info("Message 2");
log::error("Message 3");
log::trace("Message 4");
let log_file_path = log::get_log_file_path().unwrap();
println!("Log file path = {:?}", log_file_path);
let contents = fs::read_to_string(log_file_path).unwrap();
assert!(
!contents.contains("Message 1"),
"Message 1 should not be present"
);
assert!(
contents.contains("Message 2"),
"Message 2 should be present"
);
assert!(
contents.contains("Message 3"),
"Message 3 should be present"
);
assert!(
!contents.contains("Message 4"),
"Message 4 should not be present"
);
}
#[test]
fn test_multiple_initialization() {
for i in 1..6 {
let mut config = config::LoggerConfiguration::new(
PathBuf::from(format!("test_files/{}", i)),
"txt",
Some(7),
Some(50),
Some(log_level::LogLevel::Info),
);
let _ = config.set_message_format("{USER_NAME} | {LEVEL} | {MESSAGE} | {TIMESTAMP}");
let _ = config.set_timestamp_format("%y-%m-%d");
log::initialize(config);
sleep(Duration::from_secs(1));
}
}
#[test]
fn test_custom_level() {
let stat = log::create_custom_level("STAT", 25);
let config = config::LoggerConfiguration::new(
PathBuf::from("test_files"),
"LOG",
Some(7),
Some(5),
None,
);
log::initialize(config);
log::custom("This is a STAT message", &stat);
log::info("This is an INFO message")
}
#[test]
fn test_level_severity() {
let config = config::LoggerConfiguration::new(
PathBuf::from("test_files"),
"LOG",
Some(7),
Some(5),
None,
);
let custom1 = log::create_custom_level("CUSTOM1", 45);
log::initialize(config);
log::custom("This is a custom message", &custom1);
log::info("This is an INFO message");
log::debug("This is a debug message");
log::info("Logging all default severity levels");
log::trace(&format!("TRACE = {}", i32::from(&LogLevel::Trace)));
log::debug(&format!("DEBUG = {}", i32::from(&LogLevel::Debug)));
log::info(&format!("INFO = {}", i32::from(&LogLevel::Info)));
log::warn(&format!("WARN = {}", i32::from(&LogLevel::Warn)));
log::error(&format!("ERROR = {}", i32::from(&LogLevel::Error)));
log::custom(&format!("CUSTOM1 = {}", i32::from(&custom1)), &custom1);
}