From 0224a5dee3e5867f6e0e1a9bd936a5968235787d Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Mon, 27 May 2019 21:02:30 +0200 Subject: [PATCH 1/2] Fix logging in docker. Docker by default doesn't have a TTY. The TermLogger doesn't work in that case. If the TermLogger can't be initiated, try the SimpleLogger. See https://github.com/Drakulix/simplelog.rs/issues/30 for a similar case. --- src/main.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index df77e89..c5aba3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -124,8 +124,10 @@ fn daemonize(options: &getopts::Matches) -> Result<()> { #[cfg(unix)] fn init_log(log_level: LevelFilter, options: &getopts::Matches) -> Result<()> { if options.opt_present("f") { - if let Err(e) = TermLogger::init(log_level, LOG_CONFIG) { - bail!("Error starting terminal logger: {}", e); + if let Err(_) = TermLogger::init(log_level, LOG_CONFIG) { + if let Err(e) = SimpleLogger::init(log_level, LOG_CONFIG) { + bail!("Error starting terminal logger: {}", e); + }; }; } else { if let Err(e) = SimpleLogger::init(log_level, LOG_CONFIG) { From b878ac555e48e234c87a8d8d7fa61c58f997c8e3 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Tue, 28 May 2019 19:15:13 +0200 Subject: [PATCH 2/2] Implement suggestions --- src/main.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index c5aba3b..bd44770 100644 --- a/src/main.rs +++ b/src/main.rs @@ -124,16 +124,16 @@ fn daemonize(options: &getopts::Matches) -> Result<()> { #[cfg(unix)] fn init_log(log_level: LevelFilter, options: &getopts::Matches) -> Result<()> { if options.opt_present("f") { - if let Err(_) = TermLogger::init(log_level, LOG_CONFIG) { - if let Err(e) = SimpleLogger::init(log_level, LOG_CONFIG) { - bail!("Error starting terminal logger: {}", e); - }; - }; - } else { - if let Err(e) = SimpleLogger::init(log_level, LOG_CONFIG) { - bail!("Error starting simple logger: {}", e); + if let Err(e) = TermLogger::init(log_level, LOG_CONFIG) { + println!("Error starting terminal logger: {}", e); + } else { + return Ok(()); } } + + if let Err(e) = SimpleLogger::init(log_level, LOG_CONFIG) { + bail!("Error starting simple logger: {}", e); + } Ok(()) }