diff options
author | Fabricio Voznika <fvoznika@google.com> | 2019-02-27 10:05:46 -0800 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2019-02-27 10:06:35 -0800 |
commit | 6df212b831dcc3350b7677423ec7835ed40b3f22 (patch) | |
tree | 278dad70f5a16efc0bf35d9eab060ef9cc10f0c7 | |
parent | d516ee3312411c60630305cfaac6c5a0e21537e8 (diff) |
Don't log twice to debug log when --log isn't set
PiperOrigin-RevId: 235940853
Change-Id: I9c5b4cf18b199fb74044a5edb131bfff59dec945
-rw-r--r-- | runsc/main.go | 8 | ||||
-rw-r--r-- | test/syscalls/syscall_test_runner.go | 5 |
2 files changed, 12 insertions, 1 deletions
diff --git a/runsc/main.go b/runsc/main.go index 472839bf0..4f89312b3 100644 --- a/runsc/main.go +++ b/runsc/main.go @@ -192,7 +192,13 @@ func main() { cmd.Fatalf("error dup'ing fd %d to stderr: %v", f.Fd(), err) } - e = log.MultiEmitter{e, newEmitter(*debugLogFormat, f)} + if logFile == os.Stderr { + // Suppress logging to stderr when debug log is enabled. Otherwise all + // messages will be duplicated in the debug log (see Dup2() call above). + e = newEmitter(*debugLogFormat, f) + } else { + e = log.MultiEmitter{e, newEmitter(*debugLogFormat, f)} + } } else if *debugLog != "" { f, err := specutils.DebugLogFile(*debugLog, subcommand) if err != nil { diff --git a/test/syscalls/syscall_test_runner.go b/test/syscalls/syscall_test_runner.go index 9fe801b26..c4af28103 100644 --- a/test/syscalls/syscall_test_runner.go +++ b/test/syscalls/syscall_test_runner.go @@ -202,6 +202,11 @@ func runTestCaseRunsc(testBin string, tc gtest.TestCase, t *testing.T) { debugLogDir += "/" log.Infof("runsc logs: %s", debugLogDir) args = append(args, "-debug-log", debugLogDir) + + // Default -log sends messages to stderr which makes reading the test log + // difficult. Instead, drop them when debug log is enabled given it's a + // better place for these messages. + args = append(args, "-log=/dev/null") } // Current process doesn't have CAP_SYS_ADMIN, create user namespace and run |