aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/openocd.texi6
-rw-r--r--src/helper/log.c15
2 files changed, 16 insertions, 5 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi
index de7dceb..d059cfa 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 8f48b92..ae26df5 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",