Added option to disable logging to MaxScale's log files.
This commit is contained in:
@ -53,6 +53,7 @@ static simple_mutex_t msg_mutex;
|
|||||||
#endif
|
#endif
|
||||||
static int highprec = 0;
|
static int highprec = 0;
|
||||||
static int do_syslog = 1;
|
static int do_syslog = 1;
|
||||||
|
static int do_maxscalelog = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Variable holding the enabled logfiles information.
|
* Variable holding the enabled logfiles information.
|
||||||
@ -751,10 +752,17 @@ static int logmanager_write_log(
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/** Book space for log string from buffer */
|
/** Book space for log string from buffer */
|
||||||
|
if(do_maxscalelog)
|
||||||
|
{
|
||||||
wp = blockbuf_get_writepos(&bb,
|
wp = blockbuf_get_writepos(&bb,
|
||||||
id,
|
id,
|
||||||
safe_str_len,
|
safe_str_len,
|
||||||
flush);
|
flush);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wp = (char*)malloc(sizeof(char)*(timestamp_len-sizeof(char)+cmplen+str_len + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined (SS_LOG_DEBUG)
|
#if defined (SS_LOG_DEBUG)
|
||||||
@ -822,8 +830,15 @@ static int logmanager_write_log(
|
|||||||
wp[safe_str_len-2]=' ';
|
wp[safe_str_len-2]=' ';
|
||||||
}
|
}
|
||||||
wp[safe_str_len-1] = '\n';
|
wp[safe_str_len-1] = '\n';
|
||||||
blockbuf_unregister(bb);
|
|
||||||
|
|
||||||
|
if(do_maxscalelog)
|
||||||
|
{
|
||||||
|
blockbuf_unregister(bb);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
free(wp);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* disable because cross-blockbuffer locking either causes deadlock
|
* disable because cross-blockbuffer locking either causes deadlock
|
||||||
* or run out of memory blocks.
|
* or run out of memory blocks.
|
||||||
@ -3112,4 +3127,13 @@ void skygw_set_highp(int val)
|
|||||||
void logmanager_enable_syslog(int val)
|
void logmanager_enable_syslog(int val)
|
||||||
{
|
{
|
||||||
do_syslog = val;
|
do_syslog = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle syslog logging
|
||||||
|
* @param val 0 for disabled, 1 for enabled
|
||||||
|
*/
|
||||||
|
void logmanager_enable_maxscalelog(int val)
|
||||||
|
{
|
||||||
|
do_maxscalelog = val;
|
||||||
}
|
}
|
||||||
@ -121,6 +121,8 @@ int skygw_log_disable(logfile_id_t id);
|
|||||||
void skygw_log_sync_all(void);
|
void skygw_log_sync_all(void);
|
||||||
void skygw_set_highp(int);
|
void skygw_set_highp(int);
|
||||||
void logmanager_enable_syslog(int);
|
void logmanager_enable_syslog(int);
|
||||||
|
void logmanager_enable_maxscalelog(int);
|
||||||
|
|
||||||
EXTERN_C_BLOCK_END
|
EXTERN_C_BLOCK_END
|
||||||
|
|
||||||
const char* get_trace_prefix_default(void);
|
const char* get_trace_prefix_default(void);
|
||||||
|
|||||||
@ -151,6 +151,7 @@ static struct option long_options[] = {
|
|||||||
{"nodaemon", no_argument, 0, 'd'},
|
{"nodaemon", no_argument, 0, 'd'},
|
||||||
{"log", required_argument, 0, 'l'},
|
{"log", required_argument, 0, 'l'},
|
||||||
{"syslog", required_argument, 0, 's'},
|
{"syslog", required_argument, 0, 's'},
|
||||||
|
{"maxscalelog", required_argument, 0, 'S'},
|
||||||
{"version", no_argument, 0, 'v'},
|
{"version", no_argument, 0, 'v'},
|
||||||
{"help", no_argument, 0, '?'},
|
{"help", no_argument, 0, '?'},
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
@ -998,6 +999,8 @@ static void usage(void)
|
|||||||
" -lfile or -lshm - defaults to shared memory\n"
|
" -lfile or -lshm - defaults to shared memory\n"
|
||||||
" -s|--syslog= log messages to syslog"
|
" -s|--syslog= log messages to syslog"
|
||||||
" true or false - defaults to true"
|
" true or false - defaults to true"
|
||||||
|
" -S|--maxscalelog= log messages to MaxScale log"
|
||||||
|
" true or false - defaults to true"
|
||||||
" -v|--version print version info and exit\n"
|
" -v|--version print version info and exit\n"
|
||||||
" -?|--help show this help\n"
|
" -?|--help show this help\n"
|
||||||
, progname);
|
, progname);
|
||||||
@ -1061,6 +1064,7 @@ int main(int argc, char **argv)
|
|||||||
int option_index;
|
int option_index;
|
||||||
int logtofile = 0; /* Use shared memory or file */
|
int logtofile = 0; /* Use shared memory or file */
|
||||||
int syslog_enabled = 1; /** Log to syslog */
|
int syslog_enabled = 1; /** Log to syslog */
|
||||||
|
int maxscalelog_enabled = 1; /** Log with MaxScale */
|
||||||
ssize_t log_flush_timeout_ms = 0;
|
ssize_t log_flush_timeout_ms = 0;
|
||||||
sigset_t sigset;
|
sigset_t sigset;
|
||||||
sigset_t sigpipe_mask;
|
sigset_t sigpipe_mask;
|
||||||
@ -1100,7 +1104,7 @@ int main(int argc, char **argv)
|
|||||||
goto return_main;
|
goto return_main;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while ((opt = getopt_long(argc, argv, "dc:f:l:vs:?",
|
while ((opt = getopt_long(argc, argv, "dc:f:l:vs:S:?",
|
||||||
long_options, &option_index)) != -1)
|
long_options, &option_index)) != -1)
|
||||||
{
|
{
|
||||||
bool succp = true;
|
bool succp = true;
|
||||||
@ -1205,6 +1209,17 @@ int main(int argc, char **argv)
|
|||||||
succp = false;
|
succp = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'S':
|
||||||
|
if(strstr(optarg,"="))
|
||||||
|
{
|
||||||
|
strtok(optarg,"= ");
|
||||||
|
maxscalelog_enabled = config_truth_value(strtok(NULL,"= "));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
maxscalelog_enabled = config_truth_value(optarg);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
if(strstr(optarg,"="))
|
if(strstr(optarg,"="))
|
||||||
{
|
{
|
||||||
@ -1578,8 +1593,18 @@ int main(int argc, char **argv)
|
|||||||
argv[1] = "-j";
|
argv[1] = "-j";
|
||||||
argv[2] = buf;
|
argv[2] = buf;
|
||||||
|
|
||||||
logmanager_enable_syslog(syslog_enabled);
|
if(!syslog_enabled)
|
||||||
|
{
|
||||||
|
printf("Syslog logging is disabled.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!maxscalelog_enabled)
|
||||||
|
{
|
||||||
|
printf("MaxScale logging is disabled.\n");
|
||||||
|
}
|
||||||
|
logmanager_enable_syslog(syslog_enabled);
|
||||||
|
logmanager_enable_maxscalelog(maxscalelog_enabled);
|
||||||
|
|
||||||
if (logtofile)
|
if (logtofile)
|
||||||
{
|
{
|
||||||
argv[3] = "-l"; /*< write to syslog */
|
argv[3] = "-l"; /*< write to syslog */
|
||||||
|
|||||||
Reference in New Issue
Block a user