prettylog_rs/logger/
mod.rs

1mod file_writer;
2mod settings;
3mod style;
4
5use crate::types::LogType;
6use file_writer::LoggerFileWriter;
7use settings::LoggerSettings;
8
9use std::sync::Once;
10
11static INIT: Once = Once::new();
12
13pub fn init() {
14    INIT.call_once(|| {
15        LoggerFileWriter::load();
16    });
17}
18
19pub fn log(message: &str, log_type: LogType) {
20    let settings = LoggerSettings::get();
21    let formatted_message = settings.logger_style.format(message, log_type);
22
23    println!("{}", formatted_message);
24
25    if settings.save_to_file {
26        LoggerFileWriter::write(message, log_type);
27    }
28}
29
30pub fn log_exception(exception: &dyn std::error::Error) {
31    log(&format!("{}", exception), LogType::Exception);
32    for (i, cause) in exception.source().into_iter().enumerate() {
33        if i > 0 {
34            log(&format!("   Caused by: {}", cause), LogType::Exception);
35        }
36    }
37}