X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fhelper%2Flog.c;h=3067ecc56180fadcdbbc797c784cdecb0147eceb;hp=b1352a3241ce1983faeea9211578460634a20b42;hb=a3d81eed4d2aac51056f36d7c00ee639bb39c552;hpb=833e7f5248778bcb31b4db1a1b91160995415203 diff --git a/src/helper/log.c b/src/helper/log.c index b1352a3241..3067ecc561 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -316,31 +316,53 @@ COMMAND_HANDLER(handle_log_output_command) return ERROR_OK; } +static struct command_registration log_command_handlers[] = { + { + .name = "log_output", + .handler = &handle_log_output_command, + .mode = COMMAND_ANY, + .help = "redirect logging to a file (default: stderr)", + .usage = "", + }, + { + .name = "debug_level", + .handler = &handle_debug_level_command, + .mode = COMMAND_ANY, + .help = "sets the verbosity level of debugging output", + .usage = "", + }, + COMMAND_REGISTRATION_DONE +}; + int log_register_commands(struct command_context *cmd_ctx) { - start = timeval_ms(); - COMMAND_REGISTER(cmd_ctx, NULL, "log_output", handle_log_output_command, - COMMAND_ANY, "redirect logging to (default: stderr)"); - COMMAND_REGISTER(cmd_ctx, NULL, "debug_level", handle_debug_level_command, - COMMAND_ANY, "adjust debug level <0-3>"); - - return ERROR_OK; + return register_commands(cmd_ctx, NULL, log_command_handlers); } -int log_init(struct command_context *cmd_ctx) +void log_init(void) { - /* set defaults for daemon configuration, if not set by cmdline or cfgfile */ + /* set defaults for daemon configuration, + * if not set by cmdline or cfgfile */ if (debug_level == -1) debug_level = LOG_LVL_INFO; - if (log_output == NULL) + char *debug_env = getenv("OPENOCD_DEBUG_LEVEL"); + if (NULL != debug_env) { - log_output = stderr; + int value; + int retval = parse_int(debug_env, &value); + if (ERROR_OK == retval && + debug_level >= LOG_LVL_SILENT && + debug_level <= LOG_LVL_DEBUG) + { + debug_level = value; + } } - start = last_time = timeval_ms(); + if (log_output == NULL) + log_output = stderr; - return ERROR_OK; + start = last_time = timeval_ms(); } int set_log_output(struct command_context *cmd_ctx, FILE *output)