From e7457e6248c7d5fabd0686a8088fc0e57a0c3c37 Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Wed, 7 Aug 2019 13:02:37 +0800 Subject: [PATCH] qemu: add logfile when debug is on So that we can check qemu log to see if something goes wrong. Signed-off-by: Peng Tao --- virtcontainers/qemu.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/virtcontainers/qemu.go b/virtcontainers/qemu.go index 0bd653f68f..45e8b19275 100644 --- a/virtcontainers/qemu.go +++ b/virtcontainers/qemu.go @@ -725,6 +725,11 @@ func (q *qemu) startSandbox(timeout int) error { if err != nil { return err } + // append logfile only on debug + if q.config.Debug { + q.qemuConfig.LogFile = filepath.Join(vmPath, "qemu.log") + } + defer func() { if err != nil { if err := os.RemoveAll(vmPath); err != nil { @@ -850,6 +855,19 @@ func (q *qemu) stopSandbox() error { q.stopped = true }() + if q.config.Debug && q.qemuConfig.LogFile != "" { + f, err := os.OpenFile(q.qemuConfig.LogFile, os.O_RDONLY, 0) + if err == nil { + scanner := bufio.NewScanner(f) + for scanner.Scan() { + q.Logger().Debug(scanner.Text()) + } + if err := scanner.Err(); err != nil { + q.Logger().WithError(err).Debug("read qemu log failed") + } + } + } + err := q.qmpSetup() if err != nil { return err