diff --git a/src/detections/detection.rs b/src/detections/detection.rs index 38a4c639..92d4a3c8 100644 --- a/src/detections/detection.rs +++ b/src/detections/detection.rs @@ -59,16 +59,22 @@ impl Detection { let result_readdir = rulefile_loader.read_dir(rulespath.unwrap_or(DIRPATH_RULES), &level, exclude_ids); if result_readdir.is_err() { - AlertMessage::alert( - &mut BufWriter::new( - OpenOptions::new() - .append(true) - .open(ERROR_LOG_PATH.to_string()) - .unwrap(), - ), - format!("{}", result_readdir.unwrap_err()), - ) - .ok(); + let errmsg = format!("{}", result_readdir.unwrap_err()); + if configs::CONFIG.read().unwrap().args.is_present("verbose") { + AlertMessage::alert(&mut BufWriter::new(std::io::stderr().lock()), &errmsg).ok(); + } + if !*QUIET_ERRORS_FLAG { + AlertMessage::alert( + &mut BufWriter::new( + OpenOptions::new() + .append(true) + .open(ERROR_LOG_PATH.to_string()) + .unwrap(), + ), + &errmsg, + ) + .ok(); + } return vec![]; } let mut parseerror_count = rulefile_loader.errorrule_count; diff --git a/src/detections/print.rs b/src/detections/print.rs index 5ee74dd3..d2fdd691 100644 --- a/src/detections/print.rs +++ b/src/detections/print.rs @@ -196,6 +196,9 @@ impl Message { impl AlertMessage { ///対象のディレクトリが存在することを確認後、最初の定型文を追加して、ファイルのbufwriterを返す関数 pub fn create_error_log(path_str: String) { + if *QUIET_ERRORS_FLAG { + return; + } let path = Path::new(&path_str); if !path.parent().unwrap().exists() { create_dir(path.parent().unwrap()).ok(); @@ -221,25 +224,20 @@ impl AlertMessage { } /// ERRORメッセージを表示する関数 - pub fn alert(w: &mut W, contents: String) -> io::Result<()> { - if !*QUIET_ERRORS_FLAG { - writeln!(w, "[ERROR] {}", contents) - } else { - Ok(()) - } + pub fn alert(w: &mut W, contents: &String) -> io::Result<()> { + writeln!(w, "[ERROR] {}", contents) } /// WARNメッセージを表示する関数 - pub fn warn(w: &mut W, contents: String) -> io::Result<()> { - if !*QUIET_ERRORS_FLAG { - writeln!(w, "[WARN] {}", contents) - } else { - Ok(()) - } + pub fn warn(w: &mut W, contents: &String) -> io::Result<()> { + writeln!(w, "[WARN] {}", contents) } /// エラーログへのERRORメッセージの出力数を確認して、0であったらファイルを削除する。1以上あればエラーを書き出した旨を標準出力に表示する pub fn output_error_log_exist() { + if *QUIET_ERRORS_FLAG { + return; + } println!( "Generated error was output to {}. Please see the file for details.", ERROR_LOG_PATH.to_string()