From f97466e92c277763fca630891a14683d65cd1481 Mon Sep 17 00:00:00 2001
From: Michael Jerris <mike@jerris.com>
Date: Tue, 15 Jul 2008 04:02:24 +0000
Subject: [PATCH] tweak to make mod_syslog work again (FSCORE-153)

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9031 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 conf/autoload_configs/syslog.conf.xml   |  2 +-
 src/mod/loggers/mod_syslog/mod_syslog.c | 18 ++++++++++++++----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/conf/autoload_configs/syslog.conf.xml b/conf/autoload_configs/syslog.conf.xml
index 8a04297cd5..1070ba54b3 100644
--- a/conf/autoload_configs/syslog.conf.xml
+++ b/conf/autoload_configs/syslog.conf.xml
@@ -10,6 +10,6 @@
   <!-- debug   - debug-level message -->
   <settings>
     <param name="ident" value="freeswitch"/>
-    <param name="format" value="${time} - ${message}"/>
+    <param name="loglevel" value="warning"/>
   </settings>
 </configuration>
diff --git a/src/mod/loggers/mod_syslog/mod_syslog.c b/src/mod/loggers/mod_syslog/mod_syslog.c
index e467d5fcf6..b4acd1ecb9 100644
--- a/src/mod/loggers/mod_syslog/mod_syslog.c
+++ b/src/mod/loggers/mod_syslog/mod_syslog.c
@@ -44,6 +44,7 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_syslog_shutdown);
 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;
@@ -68,7 +69,6 @@ static switch_loadable_module_interface_t console_module_interface = {
 
 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) {
@@ -98,7 +98,7 @@ static switch_status_t mod_syslog_logger(const switch_log_node_t *node, switch_l
 		break;
 	}
 
-	if (!switch_strlen_zero(message)) {
+	if (!switch_strlen_zero(node->data)) {
 		syslog(syslog_level, "%s", node->data);
 	}
 
@@ -111,6 +111,9 @@ static switch_status_t load_config(void)
 {
 	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);
@@ -124,7 +127,13 @@ static switch_status_t load_config(void)
 					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;
+                    }
+                }
 
 			}
 		}
@@ -152,7 +161,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_syslog_load)
 
 	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;
 }