Add >stdout and >stderr to log_output command.

This allows people to send log output to stdout and stderr in addition
to a file.

Change-Id: I4b3f575b416c425b1e61b39e422262bf68f41091
This commit is contained in:
Tim Newsome 2019-02-21 12:09:45 -08:00
parent 8dd5d2a710
commit ae25286c87
1 changed files with 9 additions and 8 deletions

View File

@ -221,12 +221,19 @@ COMMAND_HANDLER(handle_debug_level_command)
COMMAND_HANDLER(handle_log_output_command) COMMAND_HANDLER(handle_log_output_command)
{ {
if (CMD_ARGC == 1) { if (CMD_ARGC == 1) {
FILE *file = fopen(CMD_ARGV[0], "w"); FILE *file = NULL;
if (!strcmp(CMD_ARGV[0], ">stdout")) {
file = stdout;
} else if (!strcmp(CMD_ARGV[0], ">stderr")) {
file = stderr;
} else {
file = fopen(CMD_ARGV[0], "w");
}
if (file == NULL) { if (file == NULL) {
LOG_ERROR("failed to open output log '%s'", CMD_ARGV[0]); LOG_ERROR("failed to open output log '%s'", CMD_ARGV[0]);
return ERROR_FAIL; return ERROR_FAIL;
} }
if (log_output != stderr && log_output != NULL) { if (log_output != stdout && log_output != stderr && log_output != NULL) {
/* Close previous log file, if it was open and wasn't stderr. */ /* Close previous log file, if it was open and wasn't stderr. */
fclose(log_output); fclose(log_output);
} }
@ -285,12 +292,6 @@ void log_init(void)
start = last_time = timeval_ms(); start = last_time = timeval_ms();
} }
int set_log_output(struct command_context *cmd_ctx, FILE *output)
{
log_output = output;
return ERROR_OK;
}
/* add/remove log callback handler */ /* add/remove log callback handler */
int log_add_callback(log_callback_fn fn, void *priv) int log_add_callback(log_callback_fn fn, void *priv)
{ {