mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-26 08:36:30 +00:00
Add -L/--log-level command line option to repmgr
Overrides any setting in the config file. This will replace the -v/--verbose option.
This commit is contained in:
4
log.c
4
log.c
@@ -39,7 +39,6 @@
|
|||||||
|
|
||||||
/* #define REPMGR_DEBUG */
|
/* #define REPMGR_DEBUG */
|
||||||
|
|
||||||
static int detect_log_level(const char *level);
|
|
||||||
static int detect_log_facility(const char *facility);
|
static int detect_log_facility(const char *facility);
|
||||||
|
|
||||||
int log_type = REPMGR_STDERR;
|
int log_type = REPMGR_STDERR;
|
||||||
@@ -217,7 +216,7 @@ logger_min_verbose(int minimum)
|
|||||||
log_level = minimum;
|
log_level = minimum;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
int
|
||||||
detect_log_level(const char *level)
|
detect_log_level(const char *level)
|
||||||
{
|
{
|
||||||
if (!strcmp(level, "DEBUG"))
|
if (!strcmp(level, "DEBUG"))
|
||||||
@@ -247,7 +246,6 @@ detect_log_facility(const char *facility)
|
|||||||
|
|
||||||
if (!strncmp(facility, "LOCAL", 5) && strlen(facility) == 6)
|
if (!strncmp(facility, "LOCAL", 5) && strlen(facility) == 6)
|
||||||
{
|
{
|
||||||
|
|
||||||
local = atoi(&facility[5]);
|
local = atoi(&facility[5]);
|
||||||
|
|
||||||
switch (local)
|
switch (local)
|
||||||
|
|||||||
5
log.h
5
log.h
@@ -112,12 +112,15 @@ __attribute__((format(PG_PRINTF_ATTRIBUTE, 3, 4)));
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
int detect_log_level(const char *level);
|
||||||
|
|
||||||
/* Logger initialisation and shutdown */
|
/* Logger initialisation and shutdown */
|
||||||
bool logger_shutdown(void);
|
|
||||||
|
|
||||||
bool logger_init(t_configuration_options * opts, const char *ident,
|
bool logger_init(t_configuration_options * opts, const char *ident,
|
||||||
const char *level, const char *facility);
|
const char *level, const char *facility);
|
||||||
|
|
||||||
|
bool logger_shutdown(void);
|
||||||
|
|
||||||
void logger_min_verbose(int minimum);
|
void logger_min_verbose(int minimum);
|
||||||
void log_hint(const char *fmt, ...);
|
void log_hint(const char *fmt, ...);
|
||||||
|
|
||||||
|
|||||||
26
repmgr.c
26
repmgr.c
@@ -151,6 +151,7 @@ main(int argc, char **argv)
|
|||||||
{"pg_bindir", required_argument, NULL, 'b'},
|
{"pg_bindir", required_argument, NULL, 'b'},
|
||||||
{"rsync-only", no_argument, NULL, 'r'},
|
{"rsync-only", no_argument, NULL, 'r'},
|
||||||
{"fast-checkpoint", no_argument, NULL, 'c'},
|
{"fast-checkpoint", no_argument, NULL, 'c'},
|
||||||
|
{"log-level", required_argument, NULL, 'L'},
|
||||||
{"initdb-no-pwprompt", no_argument, NULL, 1},
|
{"initdb-no-pwprompt", no_argument, NULL, 1},
|
||||||
{"check-upstream-config", no_argument, NULL, 2},
|
{"check-upstream-config", no_argument, NULL, 2},
|
||||||
{"recovery-min-apply-delay", required_argument, NULL, 3},
|
{"recovery-min-apply-delay", required_argument, NULL, 3},
|
||||||
@@ -174,7 +175,7 @@ main(int argc, char **argv)
|
|||||||
/* Prevent getopt_long() from printing an error message */
|
/* Prevent getopt_long() from printing an error message */
|
||||||
opterr = 0;
|
opterr = 0;
|
||||||
|
|
||||||
while ((c = getopt_long(argc, argv, "?Vd:h:p:U:S:D:l:f:R:w:k:FWIvb:r:c", long_options,
|
while ((c = getopt_long(argc, argv, "?Vd:h:p:U:S:D:l:f:R:w:k:FWIvb:r:c:L:", long_options,
|
||||||
&optindex)) != -1)
|
&optindex)) != -1)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -256,6 +257,22 @@ main(int argc, char **argv)
|
|||||||
case 'c':
|
case 'c':
|
||||||
runtime_options.fast_checkpoint = true;
|
runtime_options.fast_checkpoint = true;
|
||||||
break;
|
break;
|
||||||
|
case 'L':
|
||||||
|
{
|
||||||
|
int detected_log_level = detect_log_level(optarg);
|
||||||
|
if (detected_log_level != -1)
|
||||||
|
{
|
||||||
|
strncpy(runtime_options.loglevel, optarg, MAXLEN);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PQExpBufferData invalid_log_level;
|
||||||
|
initPQExpBuffer(&invalid_log_level);
|
||||||
|
appendPQExpBuffer(&invalid_log_level, _("Invalid log level \"%s\" provided"), optarg);
|
||||||
|
error_list_append(&cli_errors, invalid_log_level.data);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 1:
|
case 1:
|
||||||
runtime_options.initdb_no_pwprompt = true;
|
runtime_options.initdb_no_pwprompt = true;
|
||||||
break;
|
break;
|
||||||
@@ -496,6 +513,12 @@ main(int argc, char **argv)
|
|||||||
* logging to troubleshoot problems.
|
* logging to troubleshoot problems.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Command-line parameter -L/--log-level overrides any setting in config file*/
|
||||||
|
if(*runtime_options.loglevel != '\0')
|
||||||
|
{
|
||||||
|
strncpy(options.loglevel, runtime_options.loglevel, MAXLEN);
|
||||||
|
}
|
||||||
|
|
||||||
logger_init(&options, progname(), options.loglevel, options.logfacility);
|
logger_init(&options, progname(), options.loglevel, options.logfacility);
|
||||||
if (runtime_options.verbose)
|
if (runtime_options.verbose)
|
||||||
logger_min_verbose(LOG_INFO);
|
logger_min_verbose(LOG_INFO);
|
||||||
@@ -2524,6 +2547,7 @@ help(void)
|
|||||||
printf(_(" -R, --remote-user=USERNAME database server username for rsync\n"));
|
printf(_(" -R, --remote-user=USERNAME database server username for rsync\n"));
|
||||||
printf(_(" -F, --force force potentially dangerous operations to happen\n"));
|
printf(_(" -F, --force force potentially dangerous operations to happen\n"));
|
||||||
printf(_(" --check-upstream-config verify upstream server configuration\n"));
|
printf(_(" --check-upstream-config verify upstream server configuration\n"));
|
||||||
|
printf(_(" -L, --log-level set log level (overrides configuration file)\n"));
|
||||||
printf(_("\n"));
|
printf(_("\n"));
|
||||||
printf(_("Command-specific configuration options:\n"));
|
printf(_("Command-specific configuration options:\n"));
|
||||||
printf(_(" -c, --fast-checkpoint (standby clone) force fast checkpoint\n"));
|
printf(_(" -c, --fast-checkpoint (standby clone) force fast checkpoint\n"));
|
||||||
|
|||||||
3
repmgr.h
3
repmgr.h
@@ -82,6 +82,7 @@ typedef struct
|
|||||||
bool ignore_external_config_files;
|
bool ignore_external_config_files;
|
||||||
char masterport[MAXLEN];
|
char masterport[MAXLEN];
|
||||||
char localport[MAXLEN];
|
char localport[MAXLEN];
|
||||||
|
char loglevel[MAXLEN];
|
||||||
|
|
||||||
/* parameter used by CLUSTER CLEANUP */
|
/* parameter used by CLUSTER CLEANUP */
|
||||||
int keep_history;
|
int keep_history;
|
||||||
@@ -91,7 +92,7 @@ typedef struct
|
|||||||
char recovery_min_apply_delay[MAXLEN];
|
char recovery_min_apply_delay[MAXLEN];
|
||||||
} t_runtime_options;
|
} t_runtime_options;
|
||||||
|
|
||||||
#define T_RUNTIME_OPTIONS_INITIALIZER { "", "", "", "", "", "", "", DEFAULT_WAL_KEEP_SEGMENTS, false, false, false, false, false, false, false, false, "", "", 0, "", "" }
|
#define T_RUNTIME_OPTIONS_INITIALIZER { "", "", "", "", "", "", "", DEFAULT_WAL_KEEP_SEGMENTS, false, false, false, false, false, false, false, false, "", "", "", 0, "", "" }
|
||||||
|
|
||||||
extern char repmgr_schema[MAXLEN];
|
extern char repmgr_schema[MAXLEN];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user