Compare commits
3 Commits
riscv
...
log_output
Author | SHA1 | Date |
---|---|---|
|
6325701062 | |
|
7072f92513 | |
|
ae25286c87 |
|
@ -7702,8 +7702,9 @@ echo "Downloading kernel -- please wait"
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn Command log_output [filename]
|
@deffn Command log_output [filename]
|
||||||
Redirect logging to @var{filename};
|
Redirect logging to @var{filename}. If @var{filename} is >stdout or >stderr,
|
||||||
the initial log output channel is stderr.
|
then logging is redirected to stdout and stderr respectively.
|
||||||
|
The initial log output channel is stderr.
|
||||||
@end deffn
|
@end deffn
|
||||||
|
|
||||||
@deffn Command add_script_search_dir [directory]
|
@deffn Command add_script_search_dir [directory]
|
||||||
|
|
|
@ -221,12 +221,18 @@ 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 +291,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)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue