qemu-trivial
[Top][All Lists]
Advanced

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

Re: [PATCH 2/2] scripts/tracetool: Add plainlog backend


From: Stefan Hajnoczi
Subject: Re: [PATCH 2/2] scripts/tracetool: Add plainlog backend
Date: Tue, 23 Jun 2020 15:47:53 +0100

On Thu, Jun 18, 2020 at 04:43:23PM +0100, Daniel P. Berrangé wrote:
> On Thu, Jun 18, 2020 at 04:35:16PM +0100, Stefan Hajnoczi wrote:
> > On Thu, Jun 18, 2020 at 10:07:41AM +0100, Daniel P. Berrangé wrote:
> > > On Thu, Jun 18, 2020 at 08:31:24AM +0100, Stefan Hajnoczi wrote:
> > > > On Wed, Jun 17, 2020 at 03:36:29PM +0200, BALATON Zoltan wrote:
> > > > > Add a backend that is the same as the log backend but omits the
> > > > > process id and timestamp so logs are easier to read and diff-able.
> > > > > 
> > > > > Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
> > > > > ---
> > > > >  scripts/tracetool/backend/plainlog.py | 48 
> > > > > +++++++++++++++++++++++++++
> > > > >  1 file changed, 48 insertions(+)
> > > > >  create mode 100644 scripts/tracetool/backend/plainlog.py
> > > > > 
> > > > > diff --git a/scripts/tracetool/backend/plainlog.py 
> > > > > b/scripts/tracetool/backend/plainlog.py
> > > > > new file mode 100644
> > > > > index 0000000000..40bbfa6d76
> > > > > --- /dev/null
> > > > > +++ b/scripts/tracetool/backend/plainlog.py
> > > > > @@ -0,0 +1,48 @@
> > > > > +# -*- coding: utf-8 -*-
> > > > > +
> > > > > +"""
> > > > > +Stderr built-in backend, plain log without proc ID and time.
> > > > > +"""
> > > > > +
> > > > > +__author__     = "Llu????s Vilanova <vilanova@ac.upc.edu>"
> > > > > +__copyright__  = "Copyright 2012-2017, Llu????s Vilanova 
> > > > > <vilanova@ac.upc.edu>"
> > > > 
> > > > There is a Unicode issue here, Lluís' name is not printed correctly.
> > > > 
> > > > > +__license__    = "GPL version 2 or (at your option) any later 
> > > > > version"
> > > > > +
> > > > > +__maintainer__ = "Stefan Hajnoczi"
> > > > > +__email__      = "stefanha@linux.vnet.ibm.com"
> > > > > +
> > > > > +
> > > > > +from tracetool import out
> > > > > +
> > > > > +
> > > > > +PUBLIC = True
> > > > > +
> > > > > +
> > > > > +def generate_h_begin(events, group):
> > > > > +    out('#include "qemu/log-for-trace.h"',
> > > > > +        '')
> > > > > +
> > > > > +
> > > > > +def generate_h(event, group):
> > > > > +    argnames = ", ".join(event.args.names())
> > > > > +    if len(event.args) > 0:
> > > > > +        argnames = ", " + argnames
> > > > > +
> > > > > +    if "vcpu" in event.properties:
> > > > > +        # already checked on the generic format code
> > > > > +        cond = "true"
> > > > > +    else:
> > > > > +        cond = "trace_event_get_state(%s)" % ("TRACE_" + 
> > > > > event.name.upper())
> > > > > +
> > > > > +    out('    if (%(cond)s && qemu_loglevel_mask(LOG_TRACE)) {',
> > > > > +        '        qemu_log("%(name)s " %(fmt)s "\\n" %(argnames)s);',
> > > > > +        '    }',
> > > > > +        cond=cond,
> > > > > +        name=event.name,
> > > > > +        fmt=event.fmt.rstrip("\n"),
> > > > > +        argnames=argnames)
> > > > 
> > > > It is not necessary to introduce a new backend. There could be an option
> > > > that controls whether or not the timestamp/tid is printed. For example,
> > > > -trace timestamp=off or maybe the timestmap/tid can be integrated into
> > > > qemu_log() itself so that it's used more consistently and a -d timestamp
> > > > option enables it.
> > > 
> > > QEMU already has a "-msg timestamp=on|off" option that controls whether
> > > error reports on stderr get a timestamp. I think it is probably reasonable
> > > for this existing option to apply to anything QEMU prints to stdout/err,
> > > and thus we could wire it up for qemu_log().
> > 
> > I thought about that but the features are somewhat unrelated.
> > 
> > If we unify them, how about making the timestamp/tid apply to *all*
> > qemu_log() output, not just tracing?
> 
> That's exactly what I intended.
> 
> Essentially if QEMU is going to add timestamps to things it writes to
> stdout/err, then it should do that universally for all parts of the code
> base that use stdio. This means error_report(), qemu_log(), and any
> other places that are relevant wrt stdio.
> 
> Having separate timestamp on/off switches for each feature is not
> desirable.

Okay. I'll take a look at this tomorrow.

Thanks!

Stefan

Attachment: signature.asc
Description: PGP signature


reply via email to

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