Add support for debug level trace in config file

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
This commit is contained in:
Jan Friesse 2012-09-17 10:36:24 +02:00
parent 8a2e936381
commit 5717655019
5 changed files with 34 additions and 9 deletions

View File

@ -83,7 +83,7 @@ let common_logging =
kv "to_syslog" /yes|no|on|off/
|kv "to_stderr" /yes|no|on|off/
|kv "to_logfile" /yes|no|on|off/
|kv "debug" /yes|no|on|off/
|kv "debug" /yes|no|on|off|trace/
|kv "logfile_priority" /alert|crit|debug|emerg|err|info|notice|warning/
|kv "syslog_priority" /alert|crit|debug|emerg|err|info|notice|warning/
|kv "syslog_facility" /daemon|local0|local1|local2|local3|local4|local5|local6|local7/

View File

@ -417,14 +417,20 @@ static int corosync_main_config_set (
snprintf(key_name, MAP_KEYNAME_MAXLEN, "%s.%s", path, "debug");
if (map_get_string(key_name, &value) == CS_OK) {
if (strcmp (value, "trace") == 0) {
if (logsys_config_debug_set (subsys, LOGSYS_DEBUG_TRACE) < 0) {
error_reason = "unable to set debug trace";
goto parse_error;
}
} else
if (strcmp (value, "on") == 0) {
if (logsys_config_debug_set (subsys, 1) < 0) {
if (logsys_config_debug_set (subsys, LOGSYS_DEBUG_ON) < 0) {
error_reason = "unable to set debug on";
goto parse_error;
}
} else
if (strcmp (value, "off") == 0) {
if (logsys_config_debug_set (subsys, 0) < 0) {
if (logsys_config_debug_set (subsys, LOGSYS_DEBUG_OFF) < 0) {
error_reason = "unable to set debug off";
goto parse_error;
}

View File

@ -88,7 +88,7 @@ struct logsys_logger {
char subsys[LOGSYS_MAX_SUBSYS_NAMELEN]; /* subsystem name */
char *logfile; /* log to file */
unsigned int mode; /* subsystem mode */
unsigned int debug; /* debug on|off */
unsigned int debug; /* debug on|off|trace */
int syslog_priority; /* priority */
int logfile_priority; /* priority to file */
int init_status; /* internal field to handle init queues
@ -344,7 +344,7 @@ int _logsys_system_setup(
"%s", mainsystem);
logsys_loggers[i].mode = mode;
logsys_loggers[i].debug = 0;
logsys_loggers[i].debug = LOGSYS_DEBUG_OFF;
logsys_loggers[i].file_idx = 0;
logsys_loggers[i].logfile_priority = syslog_priority;
logsys_loggers[i].syslog_priority = syslog_priority;
@ -709,9 +709,19 @@ static void _logsys_config_apply_per_file(int32_t s, const char *filename)
QB_LOG_FILTER_FILE, filename, LOG_TRACE);
}
if (logsys_loggers[s].debug) {
syslog_priority = LOG_DEBUG;
logfile_priority = LOG_DEBUG;
if (logsys_loggers[s].debug != LOGSYS_DEBUG_OFF) {
switch (logsys_loggers[s].debug) {
case LOGSYS_DEBUG_ON:
syslog_priority = LOG_DEBUG;
logfile_priority = LOG_DEBUG;
break;
case LOGSYS_DEBUG_TRACE:
syslog_priority = LOG_TRACE;
logfile_priority = LOG_TRACE;
break;
default:
assert(0);
}
}
qb_log_filter_ctl(QB_LOG_SYSLOG, QB_LOG_FILTER_ADD,
QB_LOG_FILTER_FILE, filename,

View File

@ -72,6 +72,7 @@ extern "C" {
#define LOGSYS_LEVEL_NOTICE LOG_NOTICE
#define LOGSYS_LEVEL_INFO LOG_INFO
#define LOGSYS_LEVEL_DEBUG LOG_DEBUG
#define LOGSYS_LEVEL_TRACE LOG_TRACE
/*
* logsys_logger bits
@ -83,6 +84,13 @@ extern "C" {
#define LOGSYS_MAX_SUBSYS_NAMELEN 64
#define LOGSYS_MAX_PERROR_MSG_LEN 128
/*
* Debug levels
*/
#define LOGSYS_DEBUG_OFF 0
#define LOGSYS_DEBUG_ON 1
#define LOGSYS_DEBUG_TRACE 2
#ifndef LOGSYS_UTILS_ONLY
/*

View File

@ -578,7 +578,8 @@ The default is: info.
.TP
debug
This specifies whether debug output is logged for this particular logger.
This specifies whether debug output is logged for this particular logger. Also can contain
value trace, what is highest level of debug informations.
The default is off.