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 <bala...@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 <vilan...@ac.upc.edu>" > > > > > +__copyright__ = "Copyright 2012-2017, Llu????s Vilanova > > > > > <vilan...@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__ = "stefa...@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
signature.asc
Description: PGP signature