From 50dc7e42b1ab3abf7f937b0ecdd5fb0081b816bd Mon Sep 17 00:00:00 2001 From: utam0k Date: Wed, 21 Apr 2021 21:38:23 +0900 Subject: [PATCH] allow log init failure. --- src/logger.rs | 15 +++++++-------- src/main.rs | 16 +++++++++------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/logger.rs b/src/logger.rs index edba793f..50e6adaf 100644 --- a/src/logger.rs +++ b/src/logger.rs @@ -39,14 +39,13 @@ pub fn init(container_id: &str, log_file: Option) -> Result<()> { log::set_logger(logger) .map(|()| log::set_max_level(level_filter)) .unwrap(); - Some( - OpenOptions::new() - .create(true) - .write(true) - .truncate(false) - .open(log_file_path) - .expect("fail opening log file "), - ) + OpenOptions::new() + .create(true) + .write(true) + .truncate(false) + .open(log_file_path) + .map_err(|e| eprintln!("{:?}", e)) + .ok() } else if let Some(log_file_path) = log_file { Some( OpenOptions::new() diff --git a/src/main.rs b/src/main.rs index 97cd632e..b7009380 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,14 +70,16 @@ fn main() -> Result<()> { let opts = Opts::parse(); // debug mode for developer - // if matches!(opts.subcmd, SubCommand::Create(_)) { - // #[cfg(debug_assertions)] - // std::env::set_var("YOUKI_MODE", "/var/lib/docker/containers/"); - // #[cfg(debug_assertions)] - // std::env::set_var("YOUKI_LOG_LEVEL", "debug"); - // } + if matches!(opts.subcmd, SubCommand::Create(_)) { + #[cfg(debug_assertions)] + std::env::set_var("YOUKI_MODE", "/var/lib/docker/containers/"); + #[cfg(debug_assertions)] + std::env::set_var("YOUKI_LOG_LEVEL", "debug"); + } - youki::logger::init(opts.subcmd.get_container_id().as_str(), opts.log)?; + if let Err(e) = youki::logger::init(opts.subcmd.get_container_id().as_str(), opts.log) { + log::warn!("log init failed: {:?}", e); + } let root_path = PathBuf::from(&opts.root); fs::create_dir_all(&root_path)?;