@@ -15,8 +15,8 @@ mod semigroup;
1515mod solution;
1616mod solver;
1717mod strategy;
18- use log:: LevelFilter ;
1918use log:: info;
19+ mod logging;
2020
2121
2222#[ derive( Debug , Copy , Clone , PartialEq , Eq , PartialOrd , Ord , ValueEnum ) ]
@@ -99,30 +99,7 @@ fn main() {
9999 let args = Args :: parse ( ) ;
100100
101101 // set up logging
102- let mut builder = env_logger:: Builder :: from_default_env ( ) ;
103- builder. format_timestamp ( None ) ;
104-
105- match & args. verbosity {
106- 0 => builder. filter_level ( LevelFilter :: Warn ) ,
107- 1 => builder. filter_level ( LevelFilter :: Info ) ,
108- 2 => builder. filter_level ( LevelFilter :: Debug ) ,
109- _ => builder. filter_level ( LevelFilter :: Trace ) ,
110- } ;
111-
112- // Decide logging output: file or stdout
113- if let Some ( log_path) = args. log_output {
114- if let Ok ( file) = File :: create ( & log_path) {
115- let writer = Box :: new ( file) as Box < dyn Write + Send > ;
116- builder. target ( env_logger:: Target :: Pipe ( writer) ) ;
117- } else {
118- eprintln ! ( "Could not create log file at {}. Defaulting to stderr." , log_path. display( ) ) ;
119- builder. target ( env_logger:: Target :: Stderr ) ;
120- }
121- } else {
122- builder. target ( env_logger:: Target :: Stderr ) ;
123- }
124-
125- builder. init ( ) ;
102+ logging:: setup_logger ( args. verbosity , args. log_output ) ;
126103
127104 // parse the input file
128105 let nfa = nfa:: Nfa :: load_from_file ( & args. filename , & args. input_format , & args. state_ordering ) ;
0 commit comments