If --dry-run specified, ensure minimum log level is INFO

When executed with --dry-run, repmgr outputs detail about what would
happen using log level INFO. If the log_level is configured to
NOTICE or higher, it's possible some or all of the --dry-run output
might not be displayed.

Addresses GitHub #441.
This commit is contained in:
Ian Barwick
2018-05-31 15:30:26 +09:00
committed by Ian Barwick
parent 7861392450
commit 8da26f1c6c
3 changed files with 19 additions and 1 deletions

7
log.c
View File

@@ -329,6 +329,13 @@ logger_set_terse(void)
} }
void
logger_set_min_level(int min_log_level)
{
if (min_log_level > log_level)
log_level = min_log_level;
}
int int
detect_log_level(const char *level) detect_log_level(const char *level)
{ {

1
log.h
View File

@@ -128,6 +128,7 @@ bool logger_shutdown(void);
void logger_set_verbose(void); void logger_set_verbose(void);
void logger_set_terse(void); void logger_set_terse(void);
void logger_set_min_level(int min_log_level);
void void
log_detail(const char *fmt,...) log_detail(const char *fmt,...)

View File

@@ -1010,7 +1010,6 @@ main(int argc, char **argv)
runtime_options.output_mode = OM_OPTFORMAT; runtime_options.output_mode = OM_OPTFORMAT;
} }
/* /*
* Check for configuration file items which can be overriden by runtime * Check for configuration file items which can be overriden by runtime
* options * options
@@ -1068,6 +1067,17 @@ main(int argc, char **argv)
if (runtime_options.terse) if (runtime_options.terse)
logger_set_terse(); logger_set_terse();
/*
* If --dry-run specified, ensure log_level is at least LOG_INFO, regardless
* of what's in the configuration file or -L/--log-level paremeter, otherwise
* some or output might not be displayed.
*/
if (runtime_options.dry_run == true)
{
logger_set_min_level(LOG_INFO);
}
/* /*
* Node configuration information is not needed for all actions, with * Node configuration information is not needed for all actions, with
* STANDBY CLONE being the main exception. * STANDBY CLONE being the main exception.