From: Travis Cross Date: Wed, 16 Jul 2014 02:28:30 +0000 (+0000) Subject: Add `session::consoleLog2()` X-Git-Tag: v1.4.8~10^2~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74262ee9649fd3e8f20b5e35412e1c245db8c8b2;p=thirdparty%2Ffreeswitch.git Add `session::consoleLog2()` This allows emitting log messages that include the file name and line number of the call. Because we have the session object here, the log messages can be correctly associated with the session from which they were emitted. As when the kernel developers need to 'fix' a system call, we'll just add a number to the name of the existing function. --- diff --git a/src/include/switch_cpp.h b/src/include/switch_cpp.h index 9ccb04d39e..382c4b4fa1 100644 --- a/src/include/switch_cpp.h +++ b/src/include/switch_cpp.h @@ -392,6 +392,7 @@ SWITCH_DECLARE(bool) email(char *to, char *from, char *headers = NULL, char *bod virtual switch_status_t run_dtmf_callback(void *input, switch_input_type_t itype) = 0; SWITCH_DECLARE(void) consoleLog(char *level_str, char *msg); + SWITCH_DECLARE(void) consoleLog2(char *level_str, char *file, char *func, int line, char *msg); }; diff --git a/src/switch_cpp.cpp b/src/switch_cpp.cpp index 38481fd635..e00f4d6280 100644 --- a/src/switch_cpp.cpp +++ b/src/switch_cpp.cpp @@ -1237,6 +1237,19 @@ SWITCH_DECLARE(void) CoreSession::consoleLog(char *level_str, char *msg) switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), level, "%s", switch_str_nil(msg)); } +SWITCH_DECLARE(void) CoreSession::consoleLog2(char *level_str, char *file, char *func, int line, char *msg) +{ + switch_log_level_t level = SWITCH_LOG_DEBUG; + if (level_str) { + level = switch_log_str2level(level_str); + if (level == SWITCH_LOG_INVALID) { + level = SWITCH_LOG_DEBUG; + } + } + switch_log_printf(SWITCH_CHANNEL_ID_SESSION, file, func, line, (const char*)session, + level, "%s", switch_str_nil(msg)); +} + /* ---- methods not bound to CoreSession instance ---- */