打开日志开关
export SOFIA_DEBUG=9
export NUA_DEBUG=9
export NTA_DEBUG=9
export NEA_DEBUG=9
export TPORT_DEBUG=9
export TPORT_LOG=1
export TPORT_DUMP=/usr/local/freeswitch/log/tport_sip.log
export SOA_DEBUG=9
export IPTSEC_DEBUG=9
export SU_DEBUG=9
修改su的日志打印
增加时间和线程号的打印,方便追踪线程间的交互。修改su_log.c
void _su_llog(su_log_t *log, unsigned level, const char *file, const char *func, int line,
char const *fmt, ...)
{
va_list ap;
char buf[1024];
struct timeval tv;
struct timezone tz;
char date[80];
struct tm* t = NULL;
gettimeofday(&tv, &tz);
t = localtime(&tv.tv_sec);
snprintf(date, sizeof(date), "%d-%02d-%02d %02d:%02d:%02d.%ld",
t->tm_year + 1900,
t->tm_mon + 1,
t->tm_mday,
t->tm_hour,
t->tm_min,
t->tm_sec,
tv.tv_usec);
va_start(ap, fmt);
snprintf(buf, sizeof(buf), "%s [su_thread:%ld] %s:%d %s() %s", date, pthread_self(), file, line, func, fmt);
_su_vllog(log, level, file, func, line, buf, ap);
va_end(ap);
}
修改switch core的日志打印
增加线程号的打印,修改switch_log.c
SWITCH_DECLARE(void) switch_log_vprintf(switch_text_channel_t channel, const char *file, const char *func, int line,
const char *userdata, switch_log_level_t level, const char *fmt, va_list ap)
{
#ifdef SWITCH_FUNC_IN_LOG
const char *extra_fmt = "%s [%s:%ld] %s:%d %s()%c%s";
#else
const char *extra_fmt = "%s [%s:%ld] %s:%d%c%s";
#endif
....
#ifdef SWITCH_FUNC_IN_LOG
switch_snprintf(new_fmt, len, extra_fmt, date, switch_log_level2str(level), pthread_self(), filep, line, funcp, 128, fmt);
#else
switch_snprintf(new_fmt, len, extra_fmt, date, switch_log_level2str(level), pthread_self(), filep, line, 128, fmt);
#endif
...
}