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.
This commit is contained in:
Travis Cross 2014-07-16 02:28:30 +00:00
parent 502cd3f659
commit 74262ee964
2 changed files with 14 additions and 0 deletions

View File

@ -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);
};

View File

@ -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 ---- */