SWITCH_MODULE_DEFINITION(mod_syslog, mod_syslog_load, mod_syslog_shutdown, NULL);
static switch_status_t load_config(void);
+static switch_log_level_t log_level;
static struct {
char *ident;
static switch_status_t mod_syslog_logger(const switch_log_node_t *node, switch_log_level_t level)
{
- char *message = NULL;
int syslog_level;
switch (level) {
break;
}
- if (!switch_strlen_zero(message)) {
+ if (!switch_strlen_zero(node->data)) {
syslog(syslog_level, "%s", node->data);
}
{
char *cf = "syslog.conf";
switch_xml_t cfg, xml, settings, param;
+
+ /* default log level */
+ log_level = SWITCH_LOG_WARNING;
if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of %s failed\n", cf);
set_global_ident(val);
} else if (!strcmp(var, "format")) {
set_global_format(val);
- }
+ } else if (!strcasecmp(var, "loglevel") && !switch_strlen_zero(val)) {
+ log_level = switch_log_str2level(val);
+ if(log_level == SWITCH_LOG_INVALID)
+ {
+ log_level = SWITCH_LOG_WARNING;
+ }
+ }
}
}
openlog(globals.ident, LOG_PID, LOG_USER);
- switch_log_bind_logger(mod_syslog_logger, SWITCH_LOG_DEBUG, SWITCH_FALSE);
+ setlogmask(LOG_UPTO(LOG_DEBUG));
+ switch_log_bind_logger(mod_syslog_logger, log_level, SWITCH_FALSE);
return SWITCH_STATUS_SUCCESS;
}