diff --git a/src/entrypoints.rs b/src/entrypoints.rs index 6400c970..f5841a36 100644 --- a/src/entrypoints.rs +++ b/src/entrypoints.rs @@ -3,20 +3,14 @@ use crate::prelude::output::NPCycle; use crate::prelude::{ output::NPResult, predict::{Engine, Predict}, - settings::run::Data, *, }; use csv::{ReaderBuilder, WriterBuilder}; use eyre::Result; -use log::LevelFilter; -use log4rs::append::file::FileAppender; -use log4rs::config::{Appender, Config, Root}; -use log4rs::encode::pattern::PatternEncoder; use ndarray::Array2; use ndarray_csv::Array2Reader; use predict::sim_obs; -use std::fs; use std::fs::File; use std::thread::spawn; use std::time::Instant; @@ -64,7 +58,7 @@ where { let now = Instant::now(); let settings = settings::run::read(settings_path); - setup_log(&settings); + logger::setup_log(&settings); let (tx, rx) = mpsc::unbounded_channel::(); let mut algorithm = initialize_algorithm(engine.clone(), settings.clone(), tx); // Spawn new thread for TUI @@ -84,21 +78,3 @@ where Ok(result) } - -//TODO: move elsewhere -fn setup_log(settings: &Data) { - if let Some(log_path) = &settings.parsed.paths.log_out { - if fs::remove_file(log_path).is_ok() {}; - let logfile = FileAppender::builder() - .encoder(Box::new(PatternEncoder::new("{l}: {m}\n"))) - .build(log_path) - .unwrap(); - - let config = Config::builder() - .appender(Appender::builder().build("logfile", Box::new(logfile))) - .build(Root::builder().appender("logfile").build(LevelFilter::Info)) - .unwrap(); - - log4rs::init_config(config).unwrap(); - }; -} diff --git a/src/lib.rs b/src/lib.rs index 9a991d6a..93613688 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,12 +25,14 @@ pub mod routines { } } pub mod entrypoints; +pub mod logger; pub mod tui; pub mod prelude { pub use crate::algorithms; pub use crate::entrypoints::simulate; pub use crate::entrypoints::start; + pub use crate::logger; pub use crate::prelude::evaluation::{prob, sigma, *}; pub use crate::routines::initialization::*; pub use crate::routines::optimization::*; diff --git a/src/logger.rs b/src/logger.rs new file mode 100644 index 00000000..5ddbea7a --- /dev/null +++ b/src/logger.rs @@ -0,0 +1,23 @@ +use crate::prelude::settings::run::Data; +use log::LevelFilter; +use log4rs::append::file::FileAppender; +use log4rs::config::{Appender, Config, Root}; +use log4rs::encode::pattern::PatternEncoder; +use std::fs; + +pub fn setup_log(settings: &Data) { + if let Some(log_path) = &settings.parsed.paths.log_out { + if fs::remove_file(log_path).is_ok() {}; + let logfile = FileAppender::builder() + .encoder(Box::new(PatternEncoder::new("{l}: {m}\n"))) + .build(log_path) + .unwrap(); + + let config = Config::builder() + .appender(Appender::builder().build("logfile", Box::new(logfile))) + .build(Root::builder().appender("logfile").build(LevelFilter::Info)) + .unwrap(); + + log4rs::init_config(config).unwrap(); + }; +}