static void add_mapping(char *var, char *val, int cumlative) { uint32_t m = 0; if (cumlative) { uint32_t l = switch_log_str2level(val); uint32_t i; if (l < 10) { for (i = 0; i <= l; i++) { m |= (1 << i); } } } else { m = switch_log_str2mask(val); } if (!strcasecmp(var, "all")) { all_level = m | switch_log_str2mask("console"); return; } del_mapping(var); switch_core_hash_insert(log_hash, var, (void *) (intptr_t) m); }
SWITCH_DECLARE(uint32_t) switch_log_str2mask(const char *str) { int argc = 0, x = 0; char *argv[10] = { 0 }; uint32_t mask = 0; char *p = strdup(str); switch_log_level_t level; switch_assert(p); if ((argc = switch_separate_string(p, ',', argv, (sizeof(argv) / sizeof(argv[0]))))) { for (x = 0; x < argc && argv[x]; x++) { if (!strcasecmp(argv[x], "all")) { mask = 0xFF; break; } else { level = switch_log_str2level(argv[x]); if (level != SWITCH_LOG_INVALID) { mask |= (1 << level); } } } } free(p); return mask; }
void fs_consol_log(char *level_str, char *msg) { switch_log_level_t level = SWITCH_LOG_DEBUG; if (level_str) { level = switch_log_str2level(level_str); } switch_log_printf(SWITCH_CHANNEL_LOG, level, msg); }
static switch_status_t config_logger(void) { char *cf = "console.conf"; switch_xml_t cfg, xml, settings, param; if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Open of %s failed\n", cf); return SWITCH_STATUS_TERM; } if (log_hash) { switch_core_hash_destroy(&log_hash); } switch_core_hash_init(&log_hash, module_pool); if ((settings = switch_xml_child(cfg, "mappings"))) { for (param = switch_xml_child(settings, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); add_mapping(var, val, 1); } for (param = switch_xml_child(settings, "map"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); add_mapping(var, val, 0); } } if ((settings = switch_xml_child(cfg, "settings"))) { for (param = switch_xml_child(settings, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); if (!strcasecmp(var, "colorize") && switch_true(val)) { #ifdef WIN32 hStdout = GetStdHandle(STD_OUTPUT_HANDLE); if (switch_core_get_console() == stdout && hStdout != INVALID_HANDLE_VALUE && GetConsoleScreenBufferInfo(hStdout, &csbiInfo)) { wOldColorAttrs = csbiInfo.wAttributes; COLORIZE = 1; } #else COLORIZE = 1; #endif } else if (!strcasecmp(var, "loglevel") && !zstr(val)) { hard_log_level = switch_log_str2level(val); } else if (!strcasecmp(var, "uuid") && switch_true(val)) { log_uuid = SWITCH_TRUE; } } } switch_xml_free(xml); return SWITCH_STATUS_SUCCESS; }
SWITCH_DECLARE(void) console_log(char *level_str, 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_LOG, level, "%s", switch_str_nil(msg)); }
SWITCH_DECLARE(void) CoreSession::consoleLog(char *level_str, 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_SESSION_LOG(session), level, "%s", switch_str_nil(msg)); }
SWITCH_DECLARE(void) console_log2(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(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)); }
static switch_status_t load_config(void) { char *cf = "syslog.conf"; switch_xml_t cfg, xml, settings, param; /* default log level */ log_level = SWITCH_LOG_WARNING; /* default facility */ globals.facility = DEFAULT_FACILITY; globals.log_uuid = SWITCH_TRUE; if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Open of %s failed\n", cf); } else { if ((settings = switch_xml_child(cfg, "settings"))) { for (param = switch_xml_child(settings, "param"); param; param = param->next) { char *var = (char *) switch_xml_attr_soft(param, "name"); char *val = (char *) switch_xml_attr_soft(param, "value"); if (!strcmp(var, "ident")) { set_global_ident(val); } else if (!strcmp(var, "format")) { set_global_format(val); } else if (!strcmp(var, "facility")) { set_global_facility(val); } else if (!strcasecmp(var, "loglevel") && !zstr(val)) { log_level = switch_log_str2level(val); if (log_level == SWITCH_LOG_INVALID) { log_level = SWITCH_LOG_WARNING; } } else if (!strcasecmp(var, "uuid")) { globals.log_uuid = switch_true(val); } } } switch_xml_free(xml); } if (zstr(globals.ident)) { set_global_ident(DEFAULT_IDENT); } if (zstr(globals.format)) { set_global_format(DEFAULT_FORMAT); } return 0; }
static switch_status_t handle_msg_set_log_level(listener_t *listener, int arity, ei_x_buff * buf, ei_x_buff * rbuf) { switch_log_level_t ltype = SWITCH_LOG_DEBUG; char loglevelstr[MAXATOMLEN]; if (arity != 2 || ei_decode_atom(buf->buff, &buf->index, loglevelstr)) { ei_x_encode_tuple_header(rbuf, 2); ei_x_encode_atom(rbuf, "error"); ei_x_encode_atom(rbuf, "badarg"); } else { ltype = switch_log_str2level(loglevelstr); if (ltype && ltype != SWITCH_LOG_INVALID) { listener->level = ltype; ei_x_encode_atom(rbuf, "ok"); } else { ei_x_encode_tuple_header(rbuf, 2); ei_x_encode_atom(rbuf, "error"); ei_x_encode_atom(rbuf, "badarg"); } } return SWITCH_STATUS_SUCCESS; }
/** * Configure module */ static switch_status_t do_config(void) { switch_xml_t cfg, xml, settings; if (!(xml = switch_xml_open_cfg("graylog2.conf", &cfg, NULL))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Open of graylog2.conf failed\n"); return SWITCH_STATUS_TERM; } /* set defaults */ globals.log_level = SWITCH_LOG_WARNING; globals.server_host = "127.0.0.1"; globals.server_port = 12201; globals.send_uncompressed_header = 0; if ((settings = switch_xml_child(cfg, "settings"))) { switch_xml_t param; switch_xml_t fields; for (param = switch_xml_child(settings, "param"); param; param = param->next) { char *name = (char *) switch_xml_attr_soft(param, "name"); char *value = (char *) switch_xml_attr_soft(param, "value"); if (zstr(name)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring empty param\n"); continue; } if (zstr(value)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring empty value for param \"%s\"\n", name); continue; } if (!strcmp(name, "server-host")) { globals.server_host = switch_core_strdup(globals.pool, value); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "\"%s\" = \"%s\"\n", name, value); } else if (!strcasecmp(name, "server-port")) { int port = -1; if (switch_is_number(value)) { port = atoi(value); } if (port > 0 && port <= 65535) { globals.server_port = port; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "\"%s\" = \"%s\"\n", name, value); } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Invalid port: \"%s\"\n", value); } } else if (!strcasecmp(name, "loglevel")) { switch_log_level_t log_level = switch_log_str2level(value); if (log_level == SWITCH_LOG_INVALID) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring invalid log level: \"%s\"\n", value); } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "\"%s\" = \"%s\"\n", name, value); globals.log_level = log_level; } } else if (!strcasecmp(name, "send-uncompressed-header")) { globals.send_uncompressed_header = switch_true(value); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "\"%s\" = \"%s\"\n", name, value); } else { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring unknown param: \"%s\"\n", name); } } /* map session fields to channel variables */ if ((fields = switch_xml_child(settings, "fields"))) { switch_xml_t field; for (field = switch_xml_child(fields, "field"); field; field = field->next) { char *name = (char *) switch_xml_attr_soft(field, "name"); char *variable = (char *) switch_xml_attr_soft(field, "variable"); if (zstr(name)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring unnamed session field\n"); continue; } if (zstr(variable)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring empty channel variable for session field \"%s\"\n", name); continue; } switch_event_add_header_string(globals.session_fields, SWITCH_STACK_BOTTOM, switch_core_strdup(globals.pool, name), switch_core_strdup(globals.pool, variable)); } } } switch_xml_free(xml); return SWITCH_STATUS_SUCCESS; }