@@ -2,7 +2,6 @@ use actix::Actor;
2
2
use actix:: Addr ;
3
3
use actix_rt:: signal:: unix:: SignalKind ;
4
4
use futures:: future:: join_all;
5
- use log:: LevelFilter ;
6
5
use log:: { debug, error, info, trace} ;
7
6
use log4rs:: append:: rolling_file:: policy:: compound:: {
8
7
roll:: fixed_window:: FixedWindowRoller , trigger:: size:: SizeTrigger , CompoundPolicy ,
@@ -47,6 +46,11 @@ struct Opts {
47
46
parse( from_os_str)
48
47
) ]
49
48
config : PathBuf ,
49
+
50
+ /// Enable debug logging.
51
+ #[ structopt( name = "debug" , long, short) ]
52
+ debug : bool ,
53
+
50
54
/// Path to the log file to use. The logfile will automatically roll over if the size
51
55
/// increases beyond 10MiB.
52
56
#[ structopt(
@@ -236,6 +240,13 @@ async fn write_pid_file(path: &Path) -> ZstorResult<bool> {
236
240
237
241
async fn real_main ( ) -> ZstorResult < ( ) > {
238
242
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
+
239
250
// TODO: add check for file name
240
251
let mut rolled_log_file = opts. log_file . clone ( ) ;
241
252
let name = if let Some ( ext) = rolled_log_file. extension ( ) {
@@ -275,12 +286,8 @@ async fn real_main() -> ZstorResult<()> {
275
286
} ) )
276
287
. build ( "logfile" , Box :: new ( log_file) ) ,
277
288
)
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) )
284
291
. unwrap ( ) ;
285
292
log4rs:: init_config ( log_config) . unwrap ( ) ;
286
293
0 commit comments