X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcli%2Fbabeltrace2.c;h=396673d0d63ed996c7b9b601ad8d3c96c9511fa1;hb=ef267d12284b855bc52ee429a5dc12da1d1e3b95;hp=4f786c2e3d6ebad141c22b0aa599b0a0a0ede92e;hpb=55478183b5a100be028ed476718f0773ec7b4af5;p=babeltrace.git diff --git a/src/cli/babeltrace2.c b/src/cli/babeltrace2.c index 4f786c2e..396673d0 100644 --- a/src/cli/babeltrace2.c +++ b/src/cli/babeltrace2.c @@ -49,25 +49,8 @@ * modules. */ static const char* log_level_env_var_names[] = { - "BABELTRACE_COMMON_LOG_LEVEL", - "BABELTRACE_COMPAT_LOG_LEVEL", - "BABELTRACE_CTFSER_LOG_LEVEL", - "BABELTRACE_FD_CACHE_LOG_LEVEL", - "BABELTRACE_FLT_LTTNG_UTILS_DEBUG_INFO_LOG_LEVEL", - "BABELTRACE_FLT_UTILS_COUNTER_LOG_LEVEL", - "BABELTRACE_FLT_UTILS_MUXER_LOG_LEVEL", - "BABELTRACE_FLT_UTILS_TRIMMER_LOG_LEVEL", - "BABELTRACE_PLUGIN_CTF_BFCR_LOG_LEVEL", "BABELTRACE_PLUGIN_CTF_METADATA_LOG_LEVEL", - "BABELTRACE_PLUGIN_CTF_MSG_ITER_LOG_LEVEL", - "BABELTRACE_PLUGIN_CTF_UTILS_LOG_LEVEL", "BABELTRACE_PYTHON_BT2_LOG_LEVEL", - "BABELTRACE_SINK_CTF_FS_LOG_LEVEL", - "BABELTRACE_SINK_TEXT_PRETTY_LOG_LEVEL", - "BABELTRACE_SINK_TEXT_DETAILS_LOG_LEVEL", - "BABELTRACE_SRC_CTF_FS_LOG_LEVEL", - "BABELTRACE_SRC_CTF_LTTNG_LIVE_LOG_LEVEL", - "BABELTRACE_SRC_TEXT_DMESG_LOG_LEVEL", NULL, }; @@ -97,7 +80,7 @@ static void set_signal_handler(void) { if (!SetConsoleCtrlHandler(signal_handler, TRUE)) { - BT_LOGE("Failed to set the ctrl+c handler."); + BT_LOGE("Failed to set the Ctrl+C handler."); } } @@ -172,9 +155,9 @@ void destroy_the_query_executor(void) } static -int query(const bt_component_class *comp_cls, const char *obj, - const bt_value *params, const bt_value **user_result, - const char **fail_reason) +int query(struct bt_config *cfg, const bt_component_class *comp_cls, + const char *obj, const bt_value *params, + const bt_value **user_result, const char **fail_reason) { const bt_value *result = NULL; bt_query_executor_status status; @@ -200,7 +183,7 @@ int query(const bt_component_class *comp_cls, const char *obj, while (true) { status = bt_query_executor_query(the_query_executor, - comp_cls, obj, params, &result); + comp_cls, obj, params, cfg->log_level, &result); switch (status) { case BT_QUERY_EXECUTOR_STATUS_OK: goto ok; @@ -209,7 +192,7 @@ int query(const bt_component_class *comp_cls, const char *obj, const uint64_t sleep_time_us = 100000; /* Wait 100 ms and retry */ - BT_LOGV("Got BT_QUERY_EXECUTOR_STATUS_AGAIN: sleeping: " + BT_LOGD("Got BT_QUERY_EXECUTOR_STATUS_AGAIN: sleeping: " "time-us=%" PRIu64, sleep_time_us); if (usleep(sleep_time_us)) { @@ -270,7 +253,7 @@ const bt_plugin *find_plugin(const char *name) const bt_plugin *plugin = NULL; BT_ASSERT(name); - BT_LOGD("Finding plugin: name=\"%s\"", name); + BT_LOGI("Finding plugin: name=\"%s\"", name); for (i = 0; i < loaded_plugins->len; i++) { plugin = g_ptr_array_index(loaded_plugins, i); @@ -282,12 +265,11 @@ const bt_plugin *find_plugin(const char *name) plugin = NULL; } - if (BT_LOG_ON_DEBUG) { - if (plugin) { - BT_LOGD("Found plugin: plugin-addr=%p", plugin); - } else { - BT_LOGD("Cannot find plugin."); - } + if (plugin) { + BT_LOGI("Found plugin: name=\"%s\", plugin-addr=%p", + name, plugin); + } else { + BT_LOGI("Cannot find plugin: name=\"%s\"", name); } bt_plugin_get_ref(plugin); @@ -305,7 +287,7 @@ const void *find_component_class_from_plugin(const char *plugin_name, const void *comp_class = NULL; const bt_plugin *plugin; - BT_LOGD("Finding component class: plugin-name=\"%s\", " + BT_LOGI("Finding component class: plugin-name=\"%s\", " "comp-cls-name=\"%s\"", plugin_name, comp_class_name); plugin = find_plugin(plugin_name); @@ -318,13 +300,13 @@ const void *find_component_class_from_plugin(const char *plugin_name, BT_PLUGIN_PUT_REF_AND_RESET(plugin); end: - if (BT_LOG_ON_DEBUG) { - if (comp_class) { - BT_LOGD("Found component class: comp-cls-addr=%p", - comp_class); - } else { - BT_LOGD("Cannot find source component class."); - } + if (comp_class) { + BT_LOGI("Found component class: plugin-name=\"%s\", " + "comp-cls-name=\"%s\"", plugin_name, comp_class_name); + } else { + BT_LOGI("Cannot find source component class: " + "plugin-name=\"%s\", comp-cls-name=\"%s\"", + plugin_name, comp_class_name); } return comp_class; @@ -735,9 +717,9 @@ void print_cfg(struct bt_config *cfg) return; } - BT_LOGI_STR("Configuration:"); - fprintf(stderr, " Debug mode: %s\n", cfg->debug ? "yes" : "no"); - fprintf(stderr, " Verbose mode: %s\n", cfg->verbose ? "yes" : "no"); + BT_LOGI_STR("CLI configuration:"); + BT_LOGI(" Debug mode: %s\n", cfg->debug ? "yes" : "no"); + BT_LOGI(" Verbose mode: %s\n", cfg->verbose ? "yes" : "no"); switch (cfg->command) { case BT_CONFIG_COMMAND_RUN: @@ -810,7 +792,7 @@ int load_dynamic_plugins(const bt_value *plugin_paths) goto end; } - BT_LOGI("Loading dynamic plugins."); + BT_LOGI_STR("Loading dynamic plugins."); for (i = 0; i < nr_paths; i++) { const bt_value *plugin_path_value = NULL; @@ -828,15 +810,15 @@ int load_dynamic_plugins(const bt_value *plugin_paths) * directory. */ if (!g_file_test(plugin_path, G_FILE_TEST_IS_DIR)) { - BT_LOGV("Skipping nonexistent directory path: " + BT_LOGI("Skipping nonexistent directory path: " "path=\"%s\"", plugin_path); continue; } plugin_set = bt_plugin_find_all_from_dir(plugin_path, false); if (!plugin_set) { - BT_LOGD("Unable to load dynamic plugins: path=\"%s\"", - plugin_path); + BT_LOGI("Unable to load dynamic plugins from directory: " + "path=\"%s\"", plugin_path); continue; } @@ -970,7 +952,7 @@ int cmd_query(struct bt_config *cfg) goto end; } - ret = query(comp_cls, cfg->cmd_data.query.object->str, + ret = query(cfg, comp_cls, cfg->cmd_data.query.object->str, cfg->cmd_data.query.cfg_component->params, &results, &fail_reason); if (ret) { @@ -1266,7 +1248,7 @@ int cmd_print_lttng_live_sessions(struct bt_config *cfg) goto error; } - ret = query(comp_cls, "sessions", params, + ret = query(cfg, comp_cls, "sessions", params, &results, &fail_reason); if (ret) { goto failed; @@ -1420,7 +1402,7 @@ int cmd_print_ctf_metadata(struct bt_config *cfg) goto end; } - ret = query(comp_cls, "metadata-info", + ret = query(cfg, comp_cls, "metadata-info", params, &results, &fail_reason); if (ret) { goto failed; @@ -1735,7 +1717,7 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component( /* Skip port if it's already connected. */ if (bt_port_is_connected(downstream_port)) { - BT_LOGD("Skipping downstream port: already connected: " + BT_LOGI("Skipping downstream port: already connected: " "port-addr=%p, port-name=\"%s\"", downstream_port, bt_port_get_name(downstream_port)); @@ -1783,7 +1765,8 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component( ctx->connect_ports = false; graph_status = bt_graph_add_filter_component( ctx->graph, trimmer_class, trimmer_name, - trimmer_params, &trimmer); + trimmer_params, ctx->cfg->log_level, + &trimmer); free(trimmer_name); if (graph_status != BT_GRAPH_STATUS_OK) { goto error; @@ -2178,7 +2161,7 @@ int set_stream_intersections(struct cmd_run_ctx *ctx, const bt_component_class *comp_cls = bt_component_class_source_as_component_class_const(src_comp_cls); - ret = query(comp_cls, "trace-info", + ret = query(ctx->cfg, comp_cls, "trace-info", cfg_comp->params, &query_result, &fail_reason); if (ret) { @@ -2297,14 +2280,14 @@ int set_stream_intersections(struct cmd_run_ctx *ctx, stream_infos, stream_idx); if (!stream_info || !bt_value_is_map(stream_info)) { ret = -1; - BT_LOGD_STR("Cannot retrieve stream informations from trace in query result."); + BT_LOGE_STR("Cannot retrieve stream informations from trace in query result."); goto error; } port_name = bt_value_map_borrow_entry_value_const(stream_info, "port-name"); if (!port_name || !bt_value_is_string(port_name)) { ret = -1; - BT_LOGD_STR("Cannot retrieve port name in query result."); + BT_LOGE_STR("Cannot retrieve port name in query result."); goto error; } @@ -2391,23 +2374,25 @@ int cmd_run_ctx_create_components_from_config_components( goto error; } + BT_ASSERT(cfg_comp->log_level >= BT_LOG_TRACE); + switch (cfg_comp->type) { case BT_COMPONENT_CLASS_TYPE_SOURCE: ret = bt_graph_add_source_component(ctx->graph, comp_cls, cfg_comp->instance_name->str, - cfg_comp->params, + cfg_comp->params, cfg_comp->log_level, (void *) &comp); break; case BT_COMPONENT_CLASS_TYPE_FILTER: ret = bt_graph_add_filter_component(ctx->graph, comp_cls, cfg_comp->instance_name->str, - cfg_comp->params, + cfg_comp->params, cfg_comp->log_level, (void *) &comp); break; case BT_COMPONENT_CLASS_TYPE_SINK: ret = bt_graph_add_sink_component(ctx->graph, comp_cls, cfg_comp->instance_name->str, - cfg_comp->params, + cfg_comp->params, cfg_comp->log_level, (void *) &comp); break; default: @@ -2661,7 +2646,7 @@ int cmd_run(struct bt_config *cfg) printf("%s", bt_common_color_reset()); fflush(stdout); fprintf(stderr, "%s", bt_common_color_reset()); - BT_LOGV("bt_graph_run() returned: status=%s", + BT_LOGT("bt_graph_run() returned: status=%s", bt_graph_status_str(graph_status)); switch (graph_status) { @@ -2677,7 +2662,7 @@ int cmd_run(struct bt_config *cfg) } if (cfg->cmd_data.run.retry_duration_us > 0) { - BT_LOGV("Got BT_GRAPH_STATUS_AGAIN: sleeping: " + BT_LOGT("Got BT_GRAPH_STATUS_AGAIN: sleeping: " "time-us=%" PRIu64, cfg->cmd_data.run.retry_duration_us); @@ -2754,10 +2739,10 @@ void set_auto_log_levels(struct bt_config *cfg) */ if (getenv("BABELTRACE_DEBUG") && strcmp(getenv("BABELTRACE_DEBUG"), "1") == 0) { - cfg->log_level = 'V'; + cfg->log_level = BT_LOG_TRACE; } else if (getenv("BABELTRACE_VERBOSE") && strcmp(getenv("BABELTRACE_VERBOSE"), "1") == 0) { - cfg->log_level = 'I'; + cfg->log_level = BT_LOG_INFO; } /* @@ -2766,45 +2751,21 @@ void set_auto_log_levels(struct bt_config *cfg) * --verbose. So: * * --verbose: INFO log level - * --debug: VERBOSE log level (includes DEBUG, which is - * is less verbose than VERBOSE in the internal + * --debug: TRACE log level (includes DEBUG, which is + * is less verbose than TRACE in the internal * logging framework) */ - if (!getenv("BABELTRACE_LOGGING_GLOBAL_LEVEL")) { + if (!getenv("LIBBABELTRACE2_INIT_LOG_LEVEL")) { if (cfg->verbose) { - bt_logging_set_global_level(BT_LOGGING_LEVEL_INFO); + bt_logging_set_global_level(BT_LOG_INFO); } else if (cfg->debug) { - bt_logging_set_global_level(BT_LOGGING_LEVEL_VERBOSE); + bt_logging_set_global_level(BT_LOG_TRACE); } else { /* * Set library's default log level if not * explicitly specified. */ - switch (cfg->log_level) { - case 'N': - bt_logging_set_global_level(BT_LOGGING_LEVEL_NONE); - break; - case 'V': - bt_logging_set_global_level(BT_LOGGING_LEVEL_VERBOSE); - break; - case 'D': - bt_logging_set_global_level(BT_LOGGING_LEVEL_DEBUG); - break; - case 'I': - bt_logging_set_global_level(BT_LOGGING_LEVEL_INFO); - break; - case 'W': - bt_logging_set_global_level(BT_LOGGING_LEVEL_WARN); - break; - case 'E': - bt_logging_set_global_level(BT_LOGGING_LEVEL_ERROR); - break; - case 'F': - bt_logging_set_global_level(BT_LOGGING_LEVEL_FATAL); - break; - default: - abort(); - } + bt_logging_set_global_level(cfg->log_level); } } @@ -2812,37 +2773,13 @@ void set_auto_log_levels(struct bt_config *cfg) if (cfg->verbose) { bt_cli_log_level = BT_LOG_INFO; } else if (cfg->debug) { - bt_cli_log_level = BT_LOG_VERBOSE; + bt_cli_log_level = BT_LOG_TRACE; } else { /* * Set CLI's default log level if not explicitly * specified. */ - switch (cfg->log_level) { - case 'N': - bt_cli_log_level = BT_LOG_NONE; - break; - case 'V': - bt_cli_log_level = BT_LOG_VERBOSE; - break; - case 'D': - bt_cli_log_level = BT_LOG_DEBUG; - break; - case 'I': - bt_cli_log_level = BT_LOG_INFO; - break; - case 'W': - bt_cli_log_level = BT_LOG_WARN; - break; - case 'E': - bt_cli_log_level = BT_LOG_ERROR; - break; - case 'F': - bt_cli_log_level = BT_LOG_FATAL; - break; - default: - abort(); - } + bt_cli_log_level = cfg->log_level; } } @@ -2851,9 +2788,9 @@ void set_auto_log_levels(struct bt_config *cfg) while (*env_var_name) { if (!getenv(*env_var_name)) { if (cfg->verbose) { - g_setenv(*env_var_name, "I", 1); + g_setenv(*env_var_name, "INFO", 1); } else if (cfg->debug) { - g_setenv(*env_var_name, "V", 1); + g_setenv(*env_var_name, "TRACE", 1); } else { char val[2] = { 0 }; @@ -2861,7 +2798,8 @@ void set_auto_log_levels(struct bt_config *cfg) * Set module's default log level if not * explicitly specified. */ - val[0] = cfg->log_level; + val[0] = bt_log_get_letter_from_level( + cfg->log_level); g_setenv(*env_var_name, val, 1); } }