[SR-Dev] git:master: Add the possibility to override logging facility.

Jan Janak jan at iptel.org
Mon Mar 2 17:26:29 CET 2009


Module: sip-router
Branch: master
Commit: f5618c1a54e9190bda9057f07caf700d0c96ca65
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=f5618c1a54e9190bda9057f07caf700d0c96ca65

Author: Jan Janak <jan at iptel.org>
Committer: Jan Janak <jan at iptel.org>
Date:   Mon Mar  2 17:23:17 2009 +0100

Add the possibility to override logging facility.

This patch adds adds a new parameter to LOG_ which makes it possible to
override the logging facility configured through the config framework.
Modules then can opt to specify a different logging facility than the
one configured globally in the sip router. The is currently used by the
acc module from kamailio.

The first parameter of LOG_ is now facility. You can set the parameter
to DEFAULT_FACILITY and in that case the facility configured through
the config framework of the sip router will be used.

The value of DEFAULT_FACILITY is 0 which is equal to LOG_KERN on linux
systems. This means that you cannot set the logging facility to
LOG_KERN from modules calling LOG_ directly because then the logging
facility configured through the config framework will be used.

This patch also adds a new macro called LOG_FC which works just like
LOG macro except that the first parameter of LOG_FC is the logging
facility to be used.

And finally there is a new macro called LM_GEN2, this is one of the
kamailio compatibility macros and it is just a different name for
LOG_FC.

Signed-off-by: Jan Janak <jan at iptel.org>

---

 dprint.h |   55 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 40 insertions(+), 15 deletions(-)

diff --git a/dprint.h b/dprint.h
index 12521f5..842cba8 100644
--- a/dprint.h
+++ b/dprint.h
@@ -81,6 +81,11 @@
 #define L_INFO   	2
 #define L_DBG    	3
 
+/* This is the facility value used to indicate that the caller of the macro
+ * did not override the facility. Value 0 (the defaul) is LOG_KERN on Linux
+ */
+#define DEFAULT_FACILITY 0
+
 #define LOG_LEVEL2NAME(level)	(log_level_info[(level) - (L_ALERT)].name)
 #define LOG2SYSLOG_LEVEL(level) \
 	(log_level_info[(level) - (L_ALERT)].syslog_level)
@@ -125,11 +130,13 @@ int log_facility_fixup(void *handle, str *name, void **val);
 #ifdef NO_LOG
 
 #	ifdef __SUNPRO_C
-#		define LOG_(level, prefix, fmt, ...)
+#		define LOG_(facility, level, prefix, fmt, ...)
 #		define LOG(level, fmt, ...)
+#		define LOG_FC(facility, level, fmt, ...)
 #	else
-#		define LOG_(level, prefix, fmt, args...)
+#		define LOG_(facility, level, prefix, fmt, args...)
 #		define LOG(level, fmt, args...)
+#		define LOG_FC(facility, level, fmt, args...)
 #	endif
 
 #else
@@ -145,7 +152,7 @@ int log_facility_fixup(void *handle, str *name, void **val);
 #	endif
 
 #	ifdef __SUNPRO_C
-#		define LOG_(level, prefix, fmt, ...) \
+#		define LOG_(facility, level, prefix, fmt, ...) \
 			do { \
 				if (unlikely(cfg_get(core, core_cfg, debug) >= (level) && \
 						DPRINT_NON_CRIT)) { \
@@ -158,7 +165,9 @@ int log_facility_fixup(void *handle, str *name, void **val);
 									__VA_ARGS__); \
 						} else { \
 							syslog(LOG2SYSLOG_LEVEL(level) | \
-									cfg_get(core, core_cfg, log_facility),\
+								   (((facility) != DEFAULT_FACILITY) ? \
+									(facility) : \
+									cfg_get(core, core_cfg, log_facility)), \
 									"%s: %s" fmt, LOG_LEVEL2NAME(level),\
 									(prefix), __VA_ARGS__); \
 						} \
@@ -170,22 +179,29 @@ int log_facility_fixup(void *handle, str *name, void **val);
 						} else { \
 							if ((level)<L_ALERT) \
 								syslog(LOG2SYSLOG_LEVEL(L_ALERT) | \
-										cfg_get(core, core_cfg, log_facility),\
-										"%s" fmt, (prefix), __VA_ARGS__); \
+									   (((facility) != DEFAULT_FACILITY) ? \
+										(facility) : \
+										cfg_get(core, core_cfg, log_facility)),\
+									   "%s" fmt, (prefix), __VA_ARGS__); \
 							else \
 								syslog(LOG2SYSLOG_LEVEL(L_DBG) | \
-										cfg_get(core, core_cfg, log_facility),\
-										"%s" fmt, (prefix), __VA_ARGS__); \
+									   (((facility) != DEFAULT_FACILITY) ? \
+										(facility) : \
+										cfg_get(core, core_cfg, log_facility)),\
+									   "%s" fmt, (prefix), __VA_ARGS__); \
 						} \
 					} \
 					DPRINT_CRIT_EXIT; \
 				} \
 			} while(0)
 			
-#		define LOG(level, fmt, ...)  LOG_((level), LOC_INFO, fmt, __VA_ARGS__)
+#		define LOG(level, fmt, ...) \
+	LOG_(DEFAULT_FACILITY, (level), LOC_INFO, fmt, __VA_ARGS__)
+#		define LOG_FC(facility, level, fmt, ...) \
+	LOG_((facility), (level), LOC_INFO, fmt, __VA_ARGS__)
 
 #	else /* ! __SUNPRO_C */
-#		define LOG_(level, prefix, fmt, args...) \
+#		define LOG_(facility, level, prefix, fmt, args...) \
 			do { \
 				if (cfg_get(core, core_cfg, debug) >= (level) && \
 						DPRINT_NON_CRIT) { \
@@ -197,7 +213,9 @@ int log_facility_fixup(void *handle, str *name, void **val);
 									LOG_LEVEL2NAME(level),(prefix), ## args);\
 						} else { \
 							syslog(LOG2SYSLOG_LEVEL(level) |\
-									cfg_get(core, core_cfg, log_facility), \
+								   (((facility) != DEFAULT_FACILITY) ? \
+									(facility) : \
+									cfg_get(core, core_cfg, log_facility)), \
 									"%s: %s" fmt, LOG_LEVEL2NAME(level),\
 									(prefix), ## args); \
 						} \
@@ -209,11 +227,15 @@ int log_facility_fixup(void *handle, str *name, void **val);
 						} else { \
 							if ((level)<L_ALERT) \
 								syslog(LOG2SYSLOG_LEVEL(L_ALERT) | \
-										cfg_get(core, core_cfg, log_facility),\
+									   (((facility) != DEFAULT_FACILITY) ? \
+										(facility) : \
+										cfg_get(core, core_cfg, log_facility)),\
 										"%s" fmt, (prefix), ## args); \
 							else \
 								syslog(LOG2SYSLOG_LEVEL(L_DBG) | \
-										cfg_get(core, core_cfg, log_facility),\
+									   (((facility) != DEFAULT_FACILITY) ? \
+										(facility) : \
+										cfg_get(core, core_cfg, log_facility)),\
 										"%s" fmt, (prefix), ## args); \
 						} \
 					} \
@@ -221,7 +243,10 @@ int log_facility_fixup(void *handle, str *name, void **val);
 				} \
 			} while(0)
 			
-#		define LOG(level, fmt, args...)  LOG_((level), LOC_INFO, fmt, ## args)
+#		define LOG(level, fmt, args...) \
+	LOG_(DEFAULT_FACILITY, (level), LOC_INFO, fmt, ## args)
+#		define LOG_FC(facility, level, fmt, args...) \
+	LOG_((facility), (level), LOC_INFO, fmt, ## args)
 		
 #	endif /* __SUNPRO_C */
 #endif /* NO_LOG */
@@ -272,7 +297,7 @@ int log_facility_fixup(void *handle, str *name, void **val);
 /* kamailio/openser compatibility */
 
 #define LM_GEN1 LOG
-
+#define LM_GEN2 LOG_FC
 #define LM_ALERT ALERT
 #define LM_CRIT  CRIT
 #define LM_ERR ERR




More information about the sr-dev mailing list