fixed errorlog create logic

This commit is contained in:
DustInDark
2021-12-21 14:40:23 +09:00
parent 4fe66f1260
commit f1c9418ab4
2 changed files with 26 additions and 22 deletions

View File

@@ -59,16 +59,22 @@ impl Detection {
let result_readdir = let result_readdir =
rulefile_loader.read_dir(rulespath.unwrap_or(DIRPATH_RULES), &level, exclude_ids); rulefile_loader.read_dir(rulespath.unwrap_or(DIRPATH_RULES), &level, exclude_ids);
if result_readdir.is_err() { if result_readdir.is_err() {
AlertMessage::alert( let errmsg = format!("{}", result_readdir.unwrap_err());
&mut BufWriter::new( if configs::CONFIG.read().unwrap().args.is_present("verbose") {
OpenOptions::new() AlertMessage::alert(&mut BufWriter::new(std::io::stderr().lock()), &errmsg).ok();
.append(true) }
.open(ERROR_LOG_PATH.to_string()) if !*QUIET_ERRORS_FLAG {
.unwrap(), AlertMessage::alert(
), &mut BufWriter::new(
format!("{}", result_readdir.unwrap_err()), OpenOptions::new()
) .append(true)
.ok(); .open(ERROR_LOG_PATH.to_string())
.unwrap(),
),
&errmsg,
)
.ok();
}
return vec![]; return vec![];
} }
let mut parseerror_count = rulefile_loader.errorrule_count; let mut parseerror_count = rulefile_loader.errorrule_count;

View File

@@ -196,6 +196,9 @@ impl Message {
impl AlertMessage { impl AlertMessage {
///対象のディレクトリが存在することを確認後、最初の定型文を追加して、ファイルのbufwriterを返す関数 ///対象のディレクトリが存在することを確認後、最初の定型文を追加して、ファイルのbufwriterを返す関数
pub fn create_error_log(path_str: String) { pub fn create_error_log(path_str: String) {
if *QUIET_ERRORS_FLAG {
return;
}
let path = Path::new(&path_str); let path = Path::new(&path_str);
if !path.parent().unwrap().exists() { if !path.parent().unwrap().exists() {
create_dir(path.parent().unwrap()).ok(); create_dir(path.parent().unwrap()).ok();
@@ -221,25 +224,20 @@ impl AlertMessage {
} }
/// ERRORメッセージを表示する関数 /// ERRORメッセージを表示する関数
pub fn alert<W: Write>(w: &mut W, contents: String) -> io::Result<()> { pub fn alert<W: Write>(w: &mut W, contents: &String) -> io::Result<()> {
if !*QUIET_ERRORS_FLAG { writeln!(w, "[ERROR] {}", contents)
writeln!(w, "[ERROR] {}", contents)
} else {
Ok(())
}
} }
/// WARNメッセージを表示する関数 /// WARNメッセージを表示する関数
pub fn warn<W: Write>(w: &mut W, contents: String) -> io::Result<()> { pub fn warn<W: Write>(w: &mut W, contents: &String) -> io::Result<()> {
if !*QUIET_ERRORS_FLAG { writeln!(w, "[WARN] {}", contents)
writeln!(w, "[WARN] {}", contents)
} else {
Ok(())
}
} }
/// エラーログへのERRORメッセージの出力数を確認して、0であったらファイルを削除する。1以上あればエラーを書き出した旨を標準出力に表示する /// エラーログへのERRORメッセージの出力数を確認して、0であったらファイルを削除する。1以上あればエラーを書き出した旨を標準出力に表示する
pub fn output_error_log_exist() { pub fn output_error_log_exist() {
if *QUIET_ERRORS_FLAG {
return;
}
println!( println!(
"Generated error was output to {}. Please see the file for details.", "Generated error was output to {}. Please see the file for details.",
ERROR_LOG_PATH.to_string() ERROR_LOG_PATH.to_string()