In shell, I use go run file > output, but only fmt.Print are saved into output. All the log.Print still output to the screen! And after I searched on the Internet, I found I can set ouput directory for log, but how can I save both log and fmt in the same file?
-
1Possible duplicate of How can I redirect and append both stdout and stderr to a file with Bash?Ainar-G– Ainar-G2015-12-15 16:21:49 +00:00Commented Dec 15, 2015 at 16:21
Add a comment
|
1 Answer
The logger writes to STDERR while fmt.PrintXXX functions write to STDOUT.
You have two choices:
1) Capture STDERR to the file.
Bash like shells use:
go run file > output 2>&1
2) Set the logger's Output to os.Stdout
Then you run like normal go run file > output and both the logger and fmt go to the same place.
log.SetOutput(os.StdOut)