use std::{error::Error, sync::Arc, thread};
use insomnilog::{
BackendOptions, ConsoleSink, LogLevel, PatternFormatter, create_logger, log_info,
preallocate_thread, start,
};
fn main() -> Result<(), Box<dyn Error>> {
let _guard = start(BackendOptions::default())?;
let sink: Arc<dyn insomnilog::Sink> = Arc::new(ConsoleSink::new(
PatternFormatter::default(),
LogLevel::Info,
));
let logger = create_logger("app", vec![sink], LogLevel::Info)?;
preallocate_thread();
log_info!(logger, "main thread ready");
let worker_logger = Arc::clone(&logger);
thread::spawn(move || {
preallocate_thread();
log_info!(worker_logger, "worker thread ready");
})
.join()
.unwrap();
Ok(())
}