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 <bergwolf@hyper.sh>
This commit is contained in:
Peng Tao 2019-08-07 13:02:37 +08:00
parent aebc49692b
commit e7457e6248

View File

@ -725,6 +725,11 @@ func (q *qemu) startSandbox(timeout int) error {
if err != nil { if err != nil {
return err return err
} }
// append logfile only on debug
if q.config.Debug {
q.qemuConfig.LogFile = filepath.Join(vmPath, "qemu.log")
}
defer func() { defer func() {
if err != nil { if err != nil {
if err := os.RemoveAll(vmPath); err != nil { if err := os.RemoveAll(vmPath); err != nil {
@ -850,6 +855,19 @@ func (q *qemu) stopSandbox() error {
q.stopped = true 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() err := q.qmpSetup()
if err != nil { if err != nil {
return err return err