func = cmd_status;
} else if (!strcasecmp(argv[0], "xmlstatus")) {
func = cmd_xml_status;
+ } else if (!strcasecmp(argv[0], "tracelevel")) {
+ if (argv[1]) {
+ mod_sofia_globals.tracelevel = switch_log_str2level(argv[1]);
+ }
+ stream->write_function(stream, "+OK tracelevel is %s", switch_log_level2str(mod_sofia_globals.tracelevel));
+ goto done;
} else if (!strcasecmp(argv[0], "loglevel")) {
if (argc > 2 && argv[2] && switch_is_number(argv[2])) {
int level = atoi(argv[2]);
static void logger(void *logarg, char const *fmt, va_list ap)
{
if (fmt && ap) {
- switch_log_vprintf(SWITCH_CHANNEL_LOG_CLEAN, SWITCH_LOG_CONSOLE, fmt, ap);
+ switch_log_vprintf(SWITCH_CHANNEL_LOG_CLEAN, mod_sofia_globals.tracelevel, fmt, ap);
} else if (fmt && !ap) {
- switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, SWITCH_LOG_CONSOLE, "%s", fmt);
+ switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, mod_sofia_globals.tracelevel, "%s", fmt);
}
}
char *val = (char *) switch_xml_attr_soft(param, "value");
if (!strcasecmp(var, "debug")) {
profile->debug = atoi(val);
+ } else if (!strcasecmp(var, "tracelevel")) {
+ mod_sofia_globals.tracelevel = switch_log_str2level(val);
} else if (!strcasecmp(var, "sip-trace")) {
if (switch_true(val)) {
sofia_set_flag(profile, TFLAG_TPORT_LOG);
int x = 0;
switch_log_level_t level = SWITCH_LOG_INVALID;
+ if (switch_is_number(str)) {
+ x = atoi(str);
+
+ if (x > SWITCH_LOG_INVALID) {
+ return SWITCH_LOG_INVALID -1;
+ } else if (x < 0) {
+ return 0;
+ } else {
+ return x;
+ }
+ }
+
+
for (x = 0;; x++) {
if (!LEVELS[x]) {
break;
const char *p;
switch_bool_t r = SWITCH_TRUE;
+ if (*str == '-' || *str == '+') {
+ str++;
+ }
+
for (p = str; p && *p; p++) {
if (!(*p == '.' || (*p > 47 && *p < 58))) {
r = SWITCH_FALSE;