[Virtio-fs] [PATCH 7/7] virtiofsd: use GDateTime for formatting timestamp for debug messages

Dr. David Alan Gilbert dgilbert at redhat.com
Thu May 6 16:00:31 UTC 2021


* Dr. David Alan Gilbert (dgilbert at redhat.com) wrote:
> * Daniel P. Berrangé (berrange at redhat.com) wrote:
> > The GDateTime APIs provided by GLib avoid portability pitfalls, such
> > as some platforms where 'struct timeval.tv_sec' field is still 'long'
> > instead of 'time_t'. When combined with automatic cleanup, GDateTime
> > often results in simpler code too.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> 
> Reviewed-by: Dr. David Alan Gilbert <dgilbert at redhat.com>

Queued this 7/7 via virtiofsd

> > ---
> >  tools/virtiofsd/passthrough_ll.c | 25 ++++---------------------
> >  1 file changed, 4 insertions(+), 21 deletions(-)
> > 
> > diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
> > index 1553d2ef45..cdd224918c 100644
> > --- a/tools/virtiofsd/passthrough_ll.c
> > +++ b/tools/virtiofsd/passthrough_ll.c
> > @@ -3558,10 +3558,6 @@ static void setup_nofile_rlimit(unsigned long rlimit_nofile)
> >  static void log_func(enum fuse_log_level level, const char *fmt, va_list ap)
> >  {
> >      g_autofree char *localfmt = NULL;
> > -    struct timespec ts;
> > -    struct tm tm;
> > -    char sec_fmt[sizeof "2020-12-07 18:17:54"];
> > -    char zone_fmt[sizeof "+0100"];
> >  
> >      if (current_log_level < level) {
> >          return;
> > @@ -3573,23 +3569,10 @@ static void log_func(enum fuse_log_level level, const char *fmt, va_list ap)
> >              localfmt = g_strdup_printf("[ID: %08ld] %s", syscall(__NR_gettid),
> >                                         fmt);
> >          } else {
> > -            /* try formatting a broken-down timestamp */
> > -            if (clock_gettime(CLOCK_REALTIME, &ts) != -1 &&
> > -                localtime_r(&ts.tv_sec, &tm) != NULL &&
> > -                strftime(sec_fmt, sizeof sec_fmt, "%Y-%m-%d %H:%M:%S",
> > -                         &tm) != 0 &&
> > -                strftime(zone_fmt, sizeof zone_fmt, "%z", &tm) != 0) {
> > -                localfmt = g_strdup_printf("[%s.%02ld%s] [ID: %08ld] %s",
> > -                                           sec_fmt,
> > -                                           ts.tv_nsec / (10L * 1000 * 1000),
> > -                                           zone_fmt, syscall(__NR_gettid),
> > -                                           fmt);
> > -            } else {
> > -                /* fall back to a flat timestamp */
> > -                localfmt = g_strdup_printf("[%" PRId64 "] [ID: %08ld] %s",
> > -                                           get_clock(), syscall(__NR_gettid),
> > -                                           fmt);
> > -            }
> > +            g_autoptr(GDateTime) now = g_date_time_new_now_local();
> > +            g_autofree char *nowstr = g_date_time_format(now, "%Y-%m-%d %H:%M:%S.%f%z");
> > +            localfmt = g_strdup_printf("[%s] [ID: %08ld] %s",
> > +                                       nowstr, syscall(__NR_gettid), fmt);
> >          }
> >          fmt = localfmt;
> >      }
> > -- 
> > 2.31.1
> > 
> -- 
> Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK
> 
> 
-- 
Dr. David Alan Gilbert / dgilbert at redhat.com / Manchester, UK




More information about the Virtio-fs mailing list