freetdm: add configurable boost trace level

This commit is contained in:
Moises Silva 2010-05-25 19:33:24 -04:00
parent 2efa471c3b
commit f974cea841
5 changed files with 50 additions and 7 deletions

View File

@ -169,7 +169,7 @@ static void null_logger(const char *file, const char *func, int line, int level,
}
static const char *LEVEL_NAMES[] = {
const char *FTDM_LEVEL_NAMES[9] = {
"EMERG",
"ALERT",
"CRIT",
@ -181,7 +181,7 @@ static const char *LEVEL_NAMES[] = {
NULL
};
static int ftdm_log_level = 7;
static int ftdm_log_level = FTDM_LOG_LEVEL_DEBUG;
static void default_logger(const char *file, const char *func, int line, int level, const char *fmt, ...)
{
@ -203,7 +203,7 @@ static void default_logger(const char *file, const char *func, int line, int lev
vsnprintf(data, sizeof(data), fmt, ap);
fprintf(stderr, "[%s] %s:%d %s() %s", LEVEL_NAMES[level], file, line, func, data);
fprintf(stderr, "[%s] %s:%d %s() %s", FTDM_LEVEL_NAMES[level], file, line, func, data);
va_end(ap);

View File

@ -2010,7 +2010,7 @@ static void ftdm_cli_span_state_cmd(ftdm_span_t *span, char *state)
ftdm_log(FTDM_LOG_CRIT, "Total Channel Cnt %i\n",cnt);
}
#define FTDM_BOOST_SYNTAX "list sigmods | <sigmod_name> <command>"
#define FTDM_BOOST_SYNTAX "list sigmods | <sigmod_name> <command> | tracelevel <span> <level>"
/**
* \brief API function to kill or debug a sangoma_boost span
* \param stream API stream handler
@ -2041,7 +2041,45 @@ static FIO_API_FUNCTION(ftdm_sangoma_boost_api)
print_request_ids();
goto done;
}
} else if (!strcasecmp(argv[0], "tracelevel")) {
ftdm_status_t status;
const char *levelname = NULL;
int dbglevel;
ftdm_sangoma_boost_data_t *sangoma_boost_data;
ftdm_span_t *span;
if (argc <= 2) {
stream->write_function(stream, "-ERR usage: tracelevel <span> <level>\n");
goto done;
}
status = ftdm_span_find_by_name(argv[1], &span);
if (FTDM_SUCCESS != status) {
stream->write_function(stream, "-ERR failed to find span by name %s\n", argv[1]);
goto done;
}
if (span->signal_type != FTDM_SIGTYPE_SANGOMABOOST) {
stream->write_function(stream, "-ERR span %s is not of boost type\n", argv[1]);
goto done;
}
for (dbglevel = 0; (levelname = FTDM_LEVEL_NAMES[dbglevel]); dbglevel++) {
if (!strcasecmp(levelname, argv[2])) {
break;
}
}
if (!levelname) {
stream->write_function(stream, "-ERR invalid log level %s\n", argv[2]);
goto done;
}
sangoma_boost_data = span->signal_data;
sangoma_boost_data->pcon.debuglevel = dbglevel;
sangoma_boost_data->mcon.debuglevel = dbglevel;
stream->write_function(stream, "+OK span %s has now trace level %s\n", argv[1], FTDM_LEVEL_NAMES[dbglevel]);
goto done;
#ifndef __WINDOWS__
#if 0
/* NC: This code crashes the kernel due to fork on heavy fs load */
@ -2673,6 +2711,8 @@ static FIO_CONFIGURE_SPAN_SIGNALING_FUNCTION(ftdm_sangoma_boost_configure_span)
span->get_span_sig_status = sangoma_boost_get_span_sig_status;
span->set_span_sig_status = sangoma_boost_set_span_sig_status;
span->state_map = &boost_state_map;
sangoma_boost_data->mcon.debuglevel = FTDM_LOG_LEVEL_DEBUG;
sangoma_boost_data->pcon.debuglevel = FTDM_LOG_LEVEL_DEBUG;
ftdm_clear_flag(span, FTDM_SPAN_SUGGEST_CHAN_ID);
ftdm_set_flag(span, FTDM_SPAN_USE_CHAN_QUEUE);
if (sigmod_iface) {

View File

@ -77,7 +77,7 @@ static void sangomabc_print_event_call(sangomabc_connection_t *mcon, sangomabc_e
if (event->event_id == SIGBOOST_EVENT_HEARTBEAT)
return;
ftdm_log(file, func, line, FTDM_LOG_LEVEL_WARNING, "%s EVENT (%s): %s:(%X) [w%dg%d] CSid=%i Seq=%i Cn=[%s] Cd=[%s] Ci=[%s] Rdnis=[%s]\n",
ftdm_log(file, func, line, mcon->debuglevel, "%s EVENT (%s): %s:(%X) [w%dg%d] CSid=%i Seq=%i Cn=[%s] Cd=[%s] Ci=[%s] Rdnis=[%s]\n",
dir ? "TX":"RX",
priority ? "P":"N",
sangomabc_event_id_name(event->event_id),
@ -96,7 +96,7 @@ static void sangomabc_print_event_short(sangomabc_connection_t *mcon, sangomabc_
{
if (event->event_id == SIGBOOST_EVENT_HEARTBEAT)
return;
ftdm_log(file, func, line, FTDM_LOG_LEVEL_WARNING, "%s EVENT (%s): %s:(%X) [s%dc%d] Rc=%i CSid=%i Seq=%i \n",
ftdm_log(file, func, line, mcon->debuglevel, "%s EVENT (%s): %s:(%X) [s%dc%d] Rc=%i CSid=%i Seq=%i \n",
dir ? "TX":"RX",
priority ? "P":"N",
sangomabc_event_id_name(event->event_id),

View File

@ -110,6 +110,7 @@ struct sangomabc_connection {
ftdm_queue_t *boost_queue;
ftdm_interrupt_t *sock_interrupt;
ftdm_span_t *span;
int debuglevel;
};
typedef struct sangomabc_connection sangomabc_connection_t;

View File

@ -564,6 +564,8 @@ FT_DECLARE(ftdm_status_t) ftdm_channel_open_chan(ftdm_channel_t *ftdmchan);
#define ftdm_log_chan(fchan, level, format, ...) ftdm_log(level, "s%dc%d " format, fchan->span_id, fchan->chan_id, __VA_ARGS__)
#define ftdm_log_chan_msg(fchan, level, msg) ftdm_log(level, "s%dc%d " msg, fchan->span_id, fchan->chan_id)
extern const char *FTDM_LEVEL_NAMES[9];
static __inline__ void ftdm_abort(void)
{
#ifdef __cplusplus