2
0
Эх сурвалжийг харах

core: dprint - log macro to print message without function name

- LOG_FN(...) skips printing the function name, to have a variant used
in a few places (xlog, xpring) and be same output format like previous releases
- renamed log macros ending in underscores to be easier to follow the
code and search for places of usage
Daniel-Constantin Mierla 5 жил өмнө
parent
commit
a7f862259f
1 өөрчлөгдсөн 56 нэмэгдсэн , 33 устгасан
  1. 56 33
      src/core/dprint.h

+ 56 - 33
src/core/dprint.h

@@ -41,14 +41,14 @@
 #if __STDC_VERSION__ < 199901L
 #	if __GNUC__ >= 2
 #		define _FUNC_NAME_ __FUNCTION__
-#		define _FUNC_FMT_ "%s(): "
+#		define _FUNC_SUFFIX_ "(): "
 #	else
 #		define _FUNC_NAME_ ""
-#		define _FUNC_FMT_ "%s"
+#		define _FUNC_SUFFIX_ ""
 #	endif
 #else
 #	define _FUNC_NAME_ __func__
-#	define _FUNC_FMT_ "%s(): "
+#	define _FUNC_SUFFIX_ "(): "
 #endif
 
 #ifdef NO_DEBUG
@@ -194,29 +194,36 @@ void log_prefix_init(void);
 #define LOGV_PREFIX_STR ((log_prefix_val)?log_prefix_val->s:"")
 #define LOGV_PREFIX_LEN ((log_prefix_val)?log_prefix_val->len:0)
 
+#define LOGV_FUNCNAME_STR(vfuncname) ((vfuncname)?vfuncname:"")
+#define LOGV_FUNCSUFFIX_STR(vfuncname) ((vfuncname)?_FUNC_SUFFIX_:"")
+
 /** @brief
  * General logging macros
  *
- * LOG_(level, prefix, fmt, ...) prints "printf"-formatted log message to
+ * LOG_FF(level, prefix, fmt, ...) prints "printf"-formatted log message to
  * stderr (if `log_stderr' is non-zero) or to syslog.  Note that `fmt' must
  * be constant. `prefix' is added to the beginning of the message.
  *
- * LOG(level, fmt, ...) is same as LOG_() with LOC_INFO prefix.
+ * LOG(level, fmt, ...) is same as LOG_FP() with LOC_INFO prefix.
  */
 #ifdef NO_LOG
 
 #	ifdef __SUNPRO_C
-#		define LOG__(facility, level, lname, prefix, ...)
-#		define LOG_(facility, level, prefix, ...)
-#		define LOG(level, fmt, ...)
+#		define LOG_FX(facility, level, lname, prefix, funcname, ...)
+#		define LOG_FL(facility, level, lname, prefix, ...)
+#		define LOG_FP(facility, level, prefix, ...)
+#		define LOG_FN(facility, level, prefix, ...)
 #		define LOG_FC(facility, level, ...)
 #		define LOG_LN(level, lname, ...)
+#		define LOG(level, fmt, ...)
 #	else
-#		define LOG__(facility, level, lname, prefix, fmt, args...)
-#		define LOG_(facility, level, prefix, fmt, args...)
-#		define LOG(level, fmt, args...)
+#		define LOG_FX(facility, level, lname, prefix, funcname, fmt, args...)
+#		define LOG_FL(facility, level, lname, prefix, fmt, args...)
+#		define LOG_FP(facility, level, prefix, fmt, args...)
+#		define LOG_FN(facility, level, prefix, fmt, args...)
 #		define LOG_FC(facility, level, fmt, args...)
 #		define LOG_LN(level, lname, fmt, args...)
+#		define LOG(level, fmt, args...)
 #	endif
 
 #else
@@ -232,7 +239,7 @@ void log_prefix_init(void);
 #	endif
 
 #	ifdef __SUNPRO_C
-#		define LOG__(facility, level, lname, prefix, fmt, ...) \
+#		define LOG_FX(facility, level, lname, prefix, funcname, fmt, ...) \
 			do { \
 				if (DPRINT_NON_CRIT \
 						&& get_debug_level(LOG_MNAME, LOG_MNAME_LEN) >= (level)) { \
@@ -241,40 +248,48 @@ void log_prefix_init(void);
 					DPRINT_CRIT_ENTER; \
 					if (unlikely(log_stderr)) { \
 						if (unlikely(log_color)) dprint_color(__llevel); \
-						fprintf(stderr, "%2d(%d) %s: %.*s%s" _FUNC_FMT_ fmt, \
+						fprintf(stderr, "%2d(%d) %s: %.*s%s%s%s" fmt, \
 								process_no, my_pid(), \
 								(lname)?(lname):LOG_LEVEL2NAME(__llevel), \
 								LOGV_PREFIX_LEN, LOGV_PREFIX_STR, \
-								(prefix), _FUNC_NAME_, __VA_ARGS__); \
+								(prefix), LOGV_FUNCNAME_STR(funcname), \
+								LOGV_FUNCSUFFIX_STR(funcname), __VA_ARGS__); \
 						if (unlikely(log_color)) dprint_color_reset(); \
 					} else { \
 						_km_log_func(LOG2SYSLOG_LEVEL(__llevel) | \
 							    (((facility) != DEFAULT_FACILITY) ? \
 								(facility) : \
 								get_debug_facility(LOG_MNAME, LOG_MNAME_LEN)), \
-								"%s: %.*s%s" _FUNC_FMT_ fmt, \
+								"%s: %.*s%s%s%s" fmt, \
 								(lname)?(lname):LOG_LEVEL2NAME(__llevel), \
 								LOGV_PREFIX_LEN, LOGV_PREFIX_STR, \
-								(prefix), _FUNC_NAME_, __VA_ARGS__); \
+								(prefix), LOGV_FUNCNAME_STR(funcname), \
+								LOGV_FUNCSUFFIX_STR(funcname), __VA_ARGS__); \
 					} \
 					DPRINT_CRIT_EXIT; \
 				} \
 			} while(0)
 
-#		define LOG_(facility, level, ...) \
-			LOG__(facility, level, NULL, __VA_ARGS__, NULL)
+#		define LOG_FL(facility, level, lname, prefix, ...) \
+			LOG_FX(facility, level, lname, prefix, _FUNC_NAME_, __VA_ARGS__, NULL)
+
+#		define LOG_FN(facility, level, prefix, ...) \
+			LOG_FX(facility, level, NULL, prefix, NULL, __VA_ARGS__, NULL)
+
+#		define LOG_FP(facility, level, prefix, ...) \
+			LOG_FL(facility, level, NULL, prefix, __VA_ARGS__, NULL)
 
-#		define LOG(level, ...) \
-			LOG_(DEFAULT_FACILITY, (level), LOC_INFO, __VA_ARGS__, NULL)
 #		define LOG_FC(facility, level, ...) \
-			LOG_((facility), (level), LOC_INFO, __VA_ARGS__, NULL)
+			LOG_FP((facility), (level), LOC_INFO, __VA_ARGS__, NULL)
 #		define LOG_LN(level, lname, ...) \
-			LOG__(DEFAULT_FACILITY, (level), (lname), LOC_INFO,\
+			LOG_FL(DEFAULT_FACILITY, (level), (lname), LOC_INFO, \
 						__VA_ARGS__, NULL)
+#		define LOG(level, ...) \
+			LOG_FP(DEFAULT_FACILITY, (level), LOC_INFO, __VA_ARGS__, NULL)
 
 
 #	else /* ! __SUNPRO_C */
-#		define LOG__(facility, level, lname, prefix, fmt, args...) \
+#		define LOG_FX(facility, level, lname, prefix, funcname, fmt, args...) \
 			do { \
 				if (DPRINT_NON_CRIT \
 						&& get_debug_level(LOG_MNAME, LOG_MNAME_LEN) >= (level) ) { \
@@ -292,42 +307,50 @@ void log_prefix_init(void);
 						__kld.v_fname = __FILE__; \
 						__kld.v_fline = __LINE__; \
 						__kld.v_mname = LOG_MNAME; \
-						__kld.v_func = _FUNC_NAME_; \
+						__kld.v_func = LOGV_FUNCNAME_STR(funcname); \
 						__kld.v_locinfo = prefix; \
 						_ksr_slog_func(&__kld, fmt, ## args); \
 					} else { /* classic logging */ \
 						if (unlikely(log_stderr)) { \
 							if (unlikely(log_color)) dprint_color(__llevel); \
-							fprintf(stderr, "%2d(%d) %s: %.*s%s" _FUNC_FMT_ fmt, \
+							fprintf(stderr, "%2d(%d) %s: %.*s%s%s%s" fmt, \
 								process_no, my_pid(), \
 								(lname)?(lname):LOG_LEVEL2NAME(__llevel), \
 								LOGV_PREFIX_LEN, LOGV_PREFIX_STR, \
-								(prefix), _FUNC_NAME_, ## args); \
+								(prefix), LOGV_FUNCNAME_STR(funcname), \
+								LOGV_FUNCSUFFIX_STR(funcname), ## args); \
 							if (unlikely(log_color)) dprint_color_reset(); \
 						} else { \
 							_km_log_func(LOG2SYSLOG_LEVEL(__llevel) | \
 							   (((facility) != DEFAULT_FACILITY) ? \
 								(facility) : \
 								get_debug_facility(LOG_MNAME, LOG_MNAME_LEN)), \
-								"%s: %.*s%s" _FUNC_FMT_ fmt, \
+								"%s: %.*s%s%s%s" fmt, \
 								(lname)?(lname):LOG_LEVEL2NAME(__llevel), \
 								LOGV_PREFIX_LEN, LOGV_PREFIX_STR, \
-								(prefix), _FUNC_NAME_, ## args); \
+								(prefix), LOGV_FUNCNAME_STR(funcname), \
+								LOGV_FUNCSUFFIX_STR(funcname), ## args); \
 						} \
 					} \
 					DPRINT_CRIT_EXIT; \
 				} \
 			} while(0)
 
-#		define LOG_(facility, level, prefix, fmt, args...) \
-			LOG__(facility, level, NULL, prefix, fmt, ## args)
+#		define LOG_FL(facility, level, lname, prefix, fmt, args...) \
+			LOG_FX(facility, level, lname, prefix, _FUNC_NAME_, fmt, ## args)
+
+#		define LOG_FN(facility, level, prefix, fmt, args...) \
+			LOG_FX(facility, level, NULL, prefix, NULL, fmt, ## args)
+
+#		define LOG_FP(facility, level, prefix, fmt, args...) \
+			LOG_FL(facility, level, NULL, prefix, fmt, ## args)
 
 #		define LOG(level, fmt, args...) \
-			LOG_(DEFAULT_FACILITY, (level), LOC_INFO, fmt , ## args)
+			LOG_FP(DEFAULT_FACILITY, (level), LOC_INFO, fmt, ## args)
 #		define LOG_FC(facility, level, fmt, args...) \
-			LOG_((facility), (level), LOC_INFO, fmt , ## args)
+			LOG_FP((facility), (level), LOC_INFO, fmt, ## args)
 #		define LOG_LN(level, lname, fmt, args...) \
-			LOG__(DEFAULT_FACILITY, (level), (lname), LOC_INFO, fmt , ## args)
+			LOG_FL(DEFAULT_FACILITY, (level), (lname), LOC_INFO, fmt, ## args)
 
 #	endif /* __SUNPRO_C */
 #endif /* NO_LOG */