diff options
-rw-r--r-- | doc/openocd.texi | 6 | ||||
-rw-r--r-- | src/helper/log.c | 15 |
2 files changed, 16 insertions, 5 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi index de7dceb7..d059cfae 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -7791,9 +7791,9 @@ echo "Downloading kernel -- please wait" @end example @end deffn -@deffn Command log_output [filename] -Redirect logging to @var{filename}; -the initial log output channel is stderr. +@deffn Command log_output [filename | "default"] +Redirect logging to @var{filename} or set it back to default output; +the default log output channel is stderr. @end deffn @deffn Command add_script_search_dir [directory] diff --git a/src/helper/log.c b/src/helper/log.c index 8f48b928..ae26df5a 100644 --- a/src/helper/log.c +++ b/src/helper/log.c @@ -220,6 +220,15 @@ COMMAND_HANDLER(handle_debug_level_command) COMMAND_HANDLER(handle_log_output_command) { + if (CMD_ARGC == 0 || (CMD_ARGC == 1 && strcmp(CMD_ARGV[0], "default") == 0)) { + if (log_output != stderr && log_output != NULL) { + /* Close previous log file, if it was open and wasn't stderr. */ + fclose(log_output); + } + log_output = stderr; + LOG_DEBUG("set log_output to default"); + return ERROR_OK; + } if (CMD_ARGC == 1) { FILE *file = fopen(CMD_ARGV[0], "w"); if (file == NULL) { @@ -231,9 +240,11 @@ COMMAND_HANDLER(handle_log_output_command) fclose(log_output); } log_output = file; + LOG_DEBUG("set log_output to \"%s\"", CMD_ARGV[0]); + return ERROR_OK; } - return ERROR_OK; + return ERROR_COMMAND_SYNTAX_ERROR; } static const struct command_registration log_command_handlers[] = { @@ -242,7 +253,7 @@ static const struct command_registration log_command_handlers[] = { .handler = handle_log_output_command, .mode = COMMAND_ANY, .help = "redirect logging to a file (default: stderr)", - .usage = "file_name", + .usage = "[file_name | \"default\"]", }, { .name = "debug_level", |