prettylog_rs/logger/
mod.rs1mod 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}