[PATCH] trace: log.py: human-readable timestamp

Vladimir Sementsov-Ogievskiy posted 1 patch 4 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250626195514.366177-1-vsementsov@yandex-team.ru
Maintainers: Stefan Hajnoczi <stefanha@redhat.com>, Mads Ynddal <mads@ynddal.dk>
scripts/tracetool/backend/log.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
[PATCH] trace: log.py: human-readable timestamp
Posted by Vladimir Sementsov-Ogievskiy 4 months, 3 weeks ago
So tired to parse all these timestamps, when need to compare them
with other logs.

Use iso8601 format as in warn_report() (info_report(), error_report())
already used.

Also, start line with date, to be similar with warn_report() as well.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
---
 scripts/tracetool/backend/log.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py
index 17ba1cd90eb..61118474b16 100644
--- a/scripts/tracetool/backend/log.py
+++ b/scripts/tracetool/backend/log.py
@@ -39,10 +39,15 @@ def generate_h(event, group):
         '        if (message_with_timestamp) {',
         '            struct timeval _now;',
         '            gettimeofday(&_now, NULL);',
+        '            time_t _seconds = _now.tv_sec;',
+        '            struct tm _tm;',
+        '            gmtime_r(&_seconds, &_tm);',
         '#line %(event_lineno)d "%(event_filename)s"',
-        '            qemu_log("%%d@%%zu.%%06zu:%(name)s " %(fmt)s "\\n",',
-        '                     qemu_get_thread_id(),',
-        '                     (size_t)_now.tv_sec, (size_t)_now.tv_usec',
+        '            qemu_log("%%04d-%%02d-%%02dT%%02d:%%02d:%%02d.%%06ldZ'
+        ' (%%d) %(name)s " %(fmt)s "\\n",',
+        '                     _tm.tm_year + 1900, _tm.tm_mon + 1, _tm.tm_mday,',
+        '                     _tm.tm_hour, _tm.tm_min, _tm.tm_sec, _now.tv_usec,',
+        '                     qemu_get_thread_id()',
         '                     %(argnames)s);',
         '#line %(out_next_lineno)d "%(out_filename)s"',
         '        } else {',
-- 
2.48.1
Re: [PATCH] trace: log.py: human-readable timestamp
Posted by Stefan Hajnoczi 4 months, 2 weeks ago
On Thu, Jun 26, 2025 at 10:55:14PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> So tired to parse all these timestamps, when need to compare them
> with other logs.
> 
> Use iso8601 format as in warn_report() (info_report(), error_report())
> already used.
> 
> Also, start line with date, to be similar with warn_report() as well.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
> ---
>  scripts/tracetool/backend/log.py | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)

Thanks, applied to my tracing tree:
https://gitlab.com/stefanha/qemu/commits/tracing

Stefan