On Wed, 17 Jun 2020, Alex Bennée wrote:
Did this patch get separated from a larger series (2/2)?
No sorry, just used format-patch for two unrelated patches and forgot to
remove this. This patch is standalone and Philippe pointed out the other
one labelled 1/2 is not needed as there's already a similar patch queued.
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.
I'd argue for this to be the behaviour of plain log (given it's mixing
with other log output). If not then maybe plainlog would be the default
log type if nothing is passed to configure?
I'd like if the default log backend was not adding timestamps and random
numbers to log messages for easier digesting and diffing but the current
log backend does that and maybe there are people who like that default so
instead of making them need to change their ways I'm proposing this
backend that those who like plain logs can use instead. That's a less
disruptive change than changing the default log backend but if others want
that I'm fine with that too.
Regards,
BALATON Zoltan
Signed-off-by: BALATON Zoltan <[email protected]>
---
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 <[email protected]>"
+__copyright__ = "Copyright 2012-2017, Lluís Vilanova <[email protected]>"
+__license__ = "GPL version 2 or (at your option) any later version"
+
+__maintainer__ = "Stefan Hajnoczi"
+__email__ = "[email protected]"
+
+
+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)
+
+
+def generate_h_backend_dstate(event, group):
+ out(' trace_event_get_state_dynamic_by_id(%(event_id)s) || \\',
+ event_id="TRACE_" + event.name.upper())