From a99df48984883f27e084480b10daf2bf158bc546 Mon Sep 17 00:00:00 2001 From: Brian West Date: Wed, 9 Jul 2014 09:09:45 -0500 Subject: [PATCH] FS-4861 improve logging when using c++ wrapper --- src/include/switch_cpp.h | 2 ++ .../languages/mod_managed/freeswitch_wrap.cxx | 32 +++++++++++++++++++ src/mod/languages/mod_managed/managed/swig.cs | 14 ++++++++ src/mod/languages/mod_perl/mod_perl_wrap.cpp | 6 ++-- src/switch_cpp.cpp | 17 ++++++++++ 5 files changed, 68 insertions(+), 3 deletions(-) diff --git a/src/include/switch_cpp.h b/src/include/switch_cpp.h index 5a372c3cdb..9ccb04d39e 100644 --- a/src/include/switch_cpp.h +++ b/src/include/switch_cpp.h @@ -71,6 +71,7 @@ SWITCH_DECLARE(char *) getGlobalVariable(char *var_name); SWITCH_DECLARE(void) consoleLog(char *level_str, char *msg); SWITCH_DECLARE(void) consoleCleanLog(char *msg); +SWITCH_DECLARE(void) consoleChannelLog(char *level_str, char *file, char *func, int line, char *msg); SWITCH_DECLARE(bool) running(void); SWITCH_DECLARE(bool) email(char *to, char *from, char *headers = NULL, char *body = NULL, @@ -398,6 +399,7 @@ SWITCH_DECLARE(bool) email(char *to, char *from, char *headers = NULL, char *bod SWITCH_DECLARE(void) console_log(char *level_str, char *msg); SWITCH_DECLARE(void) console_clean_log(char *msg); +SWITCH_DECLARE(void) console_channel_log(char *level_str, char *file, char *func, int line, char *msg); SWITCH_DECLARE(void) switch_msleep(unsigned ms); /** \brief bridge the audio of session_b into session_a diff --git a/src/mod/languages/mod_managed/freeswitch_wrap.cxx b/src/mod/languages/mod_managed/freeswitch_wrap.cxx index 504e121dbb..22c248e64d 100644 --- a/src/mod/languages/mod_managed/freeswitch_wrap.cxx +++ b/src/mod/languages/mod_managed/freeswitch_wrap.cxx @@ -41826,6 +41826,22 @@ SWIGEXPORT void SWIGSTDCALL CSharp_consoleCleanLog(char * jarg1) { } +SWIGEXPORT void SWIGSTDCALL CSharp_consoleChannelLog(char * jarg1, char * jarg2, char * jarg3, int jarg4, char * jarg5) { + char *arg1 = (char *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + int arg4 ; + char *arg5 = (char *) 0 ; + + arg1 = (char *)jarg1; + arg2 = (char *)jarg2; + arg3 = (char *)jarg3; + arg4 = (int)jarg4; + arg5 = (char *)jarg5; + consoleChannelLog(arg1,arg2,arg3,arg4,arg5); +} + + SWIGEXPORT unsigned int SWIGSTDCALL CSharp_running() { unsigned int jresult ; bool result; @@ -43648,6 +43664,22 @@ SWIGEXPORT void SWIGSTDCALL CSharp_console_clean_log(char * jarg1) { } +SWIGEXPORT void SWIGSTDCALL CSharp_console_channel_log(char * jarg1, char * jarg2, char * jarg3, int jarg4, char * jarg5) { + char *arg1 = (char *) 0 ; + char *arg2 = (char *) 0 ; + char *arg3 = (char *) 0 ; + int arg4 ; + char *arg5 = (char *) 0 ; + + arg1 = (char *)jarg1; + arg2 = (char *)jarg2; + arg3 = (char *)jarg3; + arg4 = (int)jarg4; + arg5 = (char *)jarg5; + console_channel_log(arg1,arg2,arg3,arg4,arg5); +} + + SWIGEXPORT void SWIGSTDCALL CSharp_msleep(unsigned int jarg1) { unsigned int arg1 ; diff --git a/src/mod/languages/mod_managed/managed/swig.cs b/src/mod/languages/mod_managed/managed/swig.cs index 45d4521899..c628160b7e 100644 --- a/src/mod/languages/mod_managed/managed/swig.cs +++ b/src/mod/languages/mod_managed/managed/swig.cs @@ -6859,6 +6859,10 @@ public class freeswitch { freeswitchPINVOKE.consoleCleanLog(msg); } + public static void consoleChannelLog(string level_str, string file, string func, int line, string msg) { + freeswitchPINVOKE.consoleChannelLog(level_str, file, func, line, msg); + } + public static bool running() { bool ret = freeswitchPINVOKE.running(); return ret; @@ -6877,6 +6881,10 @@ public class freeswitch { freeswitchPINVOKE.console_clean_log(msg); } + public static void console_channel_log(string level_str, string file, string func, int line, string msg) { + freeswitchPINVOKE.console_channel_log(level_str, file, func, line, msg); + } + public static void msleep(uint ms) { freeswitchPINVOKE.msleep(ms); } @@ -17392,6 +17400,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_consoleCleanLog")] public static extern void consoleCleanLog(string jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_consoleChannelLog")] + public static extern void consoleChannelLog(string jarg1, string jarg2, string jarg3, int jarg4, string jarg5); + [DllImport("mod_managed", EntryPoint="CSharp_running")] public static extern bool running(); @@ -17812,6 +17823,9 @@ class freeswitchPINVOKE { [DllImport("mod_managed", EntryPoint="CSharp_console_clean_log")] public static extern void console_clean_log(string jarg1); + [DllImport("mod_managed", EntryPoint="CSharp_console_channel_log")] + public static extern void console_channel_log(string jarg1, string jarg2, string jarg3, int jarg4, string jarg5); + [DllImport("mod_managed", EntryPoint="CSharp_msleep")] public static extern void msleep(uint jarg1); diff --git a/src/mod/languages/mod_perl/mod_perl_wrap.cpp b/src/mod/languages/mod_perl/mod_perl_wrap.cpp index a7c2a690bd..d34db2d079 100644 --- a/src/mod/languages/mod_perl/mod_perl_wrap.cpp +++ b/src/mod/languages/mod_perl/mod_perl_wrap.cpp @@ -10272,17 +10272,17 @@ XS(SWIG_init) { SWIG_TypeClientData(SWIGTYPE_p_IVRMenu, (void*) "freeswitch::IVRMenu"); SWIG_TypeClientData(SWIGTYPE_p_API, (void*) "freeswitch::API"); SWIG_TypeClientData(SWIGTYPE_p_input_callback_state, (void*) "freeswitch::input_callback_state_t"); - /*@SWIG:/usr/local/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { + /*@SWIG://share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "S_HUP", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(S_HUP))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; - /*@SWIG:/usr/local/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { + /*@SWIG://share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "S_FREE", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(S_FREE))); SvREADONLY_on(sv); } while(0) /*@SWIG@*/; - /*@SWIG:/usr/local/share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { + /*@SWIG://share/swig/1.3.35/perl5/perltypemaps.swg,64,%set_constant@*/ do { SV *sv = get_sv((char*) SWIG_prefix "S_RDLOCK", TRUE | 0x2 | GV_ADDMULTI); sv_setsv(sv, SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(S_RDLOCK))); SvREADONLY_on(sv); diff --git a/src/switch_cpp.cpp b/src/switch_cpp.cpp index 3c73536454..38481fd635 100644 --- a/src/switch_cpp.cpp +++ b/src/switch_cpp.cpp @@ -1279,6 +1279,11 @@ SWITCH_DECLARE(void) consoleCleanLog(char *msg) return console_clean_log(msg); } +SWITCH_DECLARE(void) consoleChannelLog(char *level_str, char *file, char *func, int line, char *msg) +{ + return console_channel_log(level_str, file, func, line, msg); +} + SWITCH_DECLARE(void) console_log(char *level_str, char *msg) { switch_log_level_t level = SWITCH_LOG_DEBUG; @@ -1296,6 +1301,18 @@ SWITCH_DECLARE(void) console_clean_log(char *msg) switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN,SWITCH_LOG_DEBUG, "%s", switch_str_nil(msg)); } +SWITCH_DECLARE(void) console_channel_log(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_LOG, file, func, line, NULL, level, "%s", switch_str_nil(msg)); +} + SWITCH_DECLARE(bool) email(char *to, char *from, char *headers, char *body, char *file, char *convert_cmd, char *convert_ext) { if (switch_simple_email(to, from, headers, body, file, convert_cmd, convert_ext) == SWITCH_TRUE) {