From: dhfelix Date: Fri, 29 May 2020 00:11:00 +0000 (-0500) Subject: Fix log configuration issues X-Git-Tag: v1.3.0~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6934402b4269ce0ecfc2a209494727895eececa3;p=thirdparty%2FFORT-validator.git Fix log configuration issues Some logs were displayed despite being disabled. --- diff --git a/src/config/boolean.c b/src/config/boolean.c index ceb28987..19bbc982 100644 --- a/src/config/boolean.c +++ b/src/config/boolean.c @@ -31,7 +31,8 @@ parse_argv_bool(struct option_field const *field, char const *str, void *result) return 0; } - return pr_op_err("Cannot parse '%s' as a bool (true|false).", str); + return pr_op_err("Invalid %s: '%s', must be boolean (true|false)", + field->name, str); } int diff --git a/src/config/filename_format.c b/src/config/filename_format.c index e9ec8ce3..8f7e9d89 100644 --- a/src/config/filename_format.c +++ b/src/config/filename_format.c @@ -44,7 +44,8 @@ parse_argv_filename_format(struct option_field const *field, char const *str, else if (strcmp(str, FNF_VALUE_NAME) == 0) DEREFERENCE(result) = FNF_NAME; else - return pr_op_err("Unknown file name format: '%s'", str); + return pr_op_err("Unknown file name format %s: '%s'", + field->name, str); return 0; } diff --git a/src/config/log_conf.c b/src/config/log_conf.c index d6c5f057..5e4a5c59 100644 --- a/src/config/log_conf.c +++ b/src/config/log_conf.c @@ -165,7 +165,7 @@ parse_argv_log_level(struct option_field const *field, char const *str, else if (strcmp(str, LOG_LEVEL_VALUE_DEBUG) == 0) DEREFERENCE_UINT(result) = LOG_DEBUG; else - return pr_op_err("Unknown log level: '%s'", str); + return pr_op_err("Unknown %s: '%s'", field->name, str); return 0; } @@ -179,7 +179,7 @@ parse_argv_log_output(struct option_field const *field, char const *str, else if (strcmp(str, LOG_OUTPUT_VALUE_CONSOLE) == 0) DEREFERENCE_ENUM(result) = CONSOLE; else - return pr_op_err("Unknown log output: '%s'", str); + return pr_op_err("Unknown %s: '%s'", field->name, str); return 0; } @@ -229,7 +229,7 @@ parse_argv_log_facility(struct option_field const *field, char const *str, else if (strcmp(str, LOG_FACILITY_VALUE_LOCAL7) == 0) DEREFERENCE_UINT32(result) = LOG_LOCAL7; else - return pr_op_err("Unknown log output: '%s'", str); + return pr_op_err("Unknown %s: '%s'", field->name, str); return 0; } diff --git a/src/log.c b/src/log.c index 73542336..042b2a46 100644 --- a/src/log.c +++ b/src/log.c @@ -72,32 +72,54 @@ log_disable_syslog(void) void log_start(void) { - switch (config_get_op_log_output()) { - case SYSLOG: - pr_op_info("Syslog log output configured; disabling operation logging on standard streams."); - pr_op_info("(Operation Logs will be sent to syslog only.)"); - log_disable_op_std(); - break; - case CONSOLE: - pr_op_info("Console log output configured; disabling operation logging on syslog."); - pr_op_info("(Operation Logs will be sent to the standard streams only.)"); - op_syslog_enabled = false; - break; + if (config_get_val_log_enabled()) { + switch (config_get_val_log_output()) { + case SYSLOG: + pr_op_info("Syslog log output configured; disabling validation logging on standard streams."); + pr_op_info("(Validation Logs will be sent to syslog only.)"); + log_disable_val_std(); + break; + case CONSOLE: + pr_op_info("Console log output configured; disabling validation logging on syslog."); + pr_op_info("(Validation Logs will be sent to the standard streams only.)"); + val_syslog_enabled = false; + break; + } + } else { + pr_op_info("Disabling validation logging on syslog."); + pr_op_info("Disabling validation logging on standard streams."); + log_disable_val_std(); + val_syslog_enabled = false; } - switch (config_get_val_log_output()) { - case SYSLOG: - pr_op_info("Syslog log output configured; disabling validation logging on standard streams."); - pr_op_info("(Validation Logs will be sent to syslog only.)"); - log_disable_val_std(); - break; - case CONSOLE: - pr_op_info("Console log output configured; disabling validation logging on syslog."); - pr_op_info("(Validation Logs will be sent to the standard streams only.)"); - if (!op_syslog_enabled) + + if (config_get_op_log_enabled()) { + switch (config_get_op_log_output()) { + case SYSLOG: + pr_op_info("Syslog log output configured; disabling operation logging on standard streams."); + pr_op_info("(Operation Logs will be sent to syslog only.)"); + log_disable_op_std(); + break; + case CONSOLE: + pr_op_info("Console log output configured; disabling operation logging on syslog."); + pr_op_info("(Operation Logs will be sent to the standard streams only.)"); + if (!val_syslog_enabled) + log_disable_syslog(); + else + op_syslog_enabled = false; + break; + } + } else { + pr_op_info("Disabling operation logging on syslog."); + pr_op_info("Disabling operation logging on standard streams."); + log_disable_op_std(); + if (!val_syslog_enabled) log_disable_syslog(); - break; + else + op_syslog_enabled = false; } + + } void