qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [questions] about qemu log


From: Markus Armbruster
Subject: Re: [Qemu-devel] [questions] about qemu log
Date: Wed, 06 Aug 2014 09:42:30 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

"Zhang Haoyu" <address@hidden> writes:

>>>>>>>> The output is on qemu's stderr.  You are in control of what that
>>>>>>> stderr is.
>>>>>>>
>>>>>>> I don't get why we can configure
>>>>>>> -D /path/to/unique/file/name.log
>>>>>>>
>>>>>>> but we also have to redirect stderr (I didn't checked if the daemonize
>>>>>>> option was closing it). What's the purpose of this logfile option?
>>>>>>>
>>>>>>
>>>>>>Well -D will log to file only loggable (i.e. qemu_log()) information
>>>>>>(which has all sorts of options and switches). Stderr, is a little
>>>>>>more static and should in theory be limited to genuine errors. But if
>>>>>>you want a combined log of both you can simply omit -D to default
>>>>>>qemu_log output to stderr. This gives you a combined log that you can
>>>>>>redirect anywhere. To be honest, this is what I do as a matter of
>>>>>>course (2> foo rather than -D foo).
>>>>>>
>>>>> Maybe we can introduce a new qemu option to specify a error logfile
>>>>> where stderr be redirected, like below,
>>>>> DEF("elogfile", HAS_ARG, QEMU_OPTION_elogfile, \
>>>>>     "-elogfile logfile redirect stderr log to logfile(default
>>>>> /var/log/qemu/<vm name>##.log)\n",
>>>>>     QEMU_ARCH_ALL)
>>>>> STEXI
>>>>> @item -elogfile @var{logfile}
>>>>> @findex -elogfile
>>>>> redirect stderr in @var{logfile}
>>>>> ETEXI
>>>>> then we can set the error log file through qemu command,
>>>>> /var/log/qemu/<vm name>##.log as default.
>>>>>
>>>>
>>>>This sounds out-of-scope for QEMU to me and makes a standard flow
>>>>non-standard. If prints are going to stderr where should be going
>>>>elsewhere they probably should be fixed. Do you have specific examples
>>>>of information going to stderr that you would rather go to a log (be
>>>>it an error log or something else?).
>>>>
>>> I use proxmox to manage vm, it dose not redirect qemu's stderr, and
>>> start vm with -daemonize option,
>>> so the error log disappeared.
>>> I want to redirect the error log of qemu to a specified logfile, if
>>> fault happened, I can use the error log to analyze the fault.
>>>
>>> And, why qemu output the error log to stderr instead of a error
>>> logfile which can be configure?
>>
>>Because the code is a mess in that regard.
>>
>>You don't fix that by redirecting stderr wholesale, because that just
>>adds to the mess.  You fix it at the root, one ill-advised fprintf() at
>>a time, as Peter advises:
>>
>
> Sorry, I'm afraid I misunderstand what you mean,
> should I replace all of fprintf(stderr, ...) with qemu_log() ?
> or only some cases where stderr is used where qemu_log should be, as
> Perter advises?

I didn't mean to suggest blind conversion from fprintf() to qemu_log().
Each instance of fprintf() needs to be reviewed before conversion.  I
think that's exactly Peter's advice, too.

> If so, should I still need to redirect the stderr to specified logfile
> in qemu's parent shell/process ?

Probably.  Libvirt does it.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]