@@ -2,7 +2,6 @@ use actix::Actor;
22use actix:: Addr ;
33use actix_rt:: signal:: unix:: SignalKind ;
44use futures:: future:: join_all;
5- use log:: LevelFilter ;
65use log:: { debug, error, info, trace} ;
76use log4rs:: append:: rolling_file:: policy:: compound:: {
87 roll:: fixed_window:: FixedWindowRoller , trigger:: size:: SizeTrigger , CompoundPolicy ,
@@ -47,6 +46,11 @@ struct Opts {
4746 parse( from_os_str)
4847 ) ]
4948 config : PathBuf ,
49+
50+ /// Enable debug logging.
51+ #[ structopt( name = "debug" , long, short) ]
52+ debug : bool ,
53+
5054 /// Path to the log file to use. The logfile will automatically roll over if the size
5155 /// increases beyond 10MiB.
5256 #[ structopt(
@@ -236,6 +240,13 @@ async fn write_pid_file(path: &Path) -> ZstorResult<bool> {
236240
237241async fn real_main ( ) -> ZstorResult < ( ) > {
238242 let opts = Opts :: from_args ( ) ;
243+
244+ let log_level = if opts. debug {
245+ log:: LevelFilter :: Debug
246+ } else {
247+ log:: LevelFilter :: Info
248+ } ;
249+
239250 // TODO: add check for file name
240251 let mut rolled_log_file = opts. log_file . clone ( ) ;
241252 let name = if let Some ( ext) = rolled_log_file. extension ( ) {
@@ -275,12 +286,8 @@ async fn real_main() -> ZstorResult<()> {
275286 } ) )
276287 . build ( "logfile" , Box :: new ( log_file) ) ,
277288 )
278- . logger ( Logger :: builder ( ) . build ( "filelogger" , LevelFilter :: Debug ) )
279- . build (
280- Root :: builder ( )
281- . appender ( "logfile" )
282- . build ( log:: LevelFilter :: Debug ) ,
283- )
289+ . logger ( Logger :: builder ( ) . build ( "filelogger" , log_level) )
290+ . build ( Root :: builder ( ) . appender ( "logfile" ) . build ( log_level) )
284291 . unwrap ( ) ;
285292 log4rs:: init_config ( log_config) . unwrap ( ) ;
286293
0 commit comments