1 use log::{debug, info, warn};
2 
setup_logging() -> Result<(), Box<dyn std::error::Error>>3 fn setup_logging() -> Result<(), Box<dyn std::error::Error>> {
4     fern::Dispatch::new()
5         .level(log::LevelFilter::Debug)
6         .chain(fern::DateBased::new("program.log.", "%Y-%m-%d"))
7         .apply()?;
8 
9     Ok(())
10 }
11 
main()12 fn main() {
13     setup_logging().expect("failed to initialize logging.");
14 
15     for i in 0..5 {
16         info!("executing section: {}", i);
17 
18         debug!("section {} 1/4 complete.", i);
19 
20         debug!("section {} 1/2 complete.", i);
21 
22         debug!("section {} 3/4 complete.", i);
23 
24         info!("section {} completed!", i);
25     }
26 
27     warn!("AHHH something's on fire.");
28 }
29