adjustable timestamp resolution in log messages

This commit is contained in:
ed 2023-08-14 17:22:22 +02:00
parent f9d5bb3b29
commit 04a1f7040e
2 changed files with 8 additions and 4 deletions

View file

@ -995,6 +995,7 @@ def add_logging(ap):
ap2.add_argument("--no-ansi", action="store_true", default=not VT100, help="disable colors; same as environment-variable NO_COLOR")
ap2.add_argument("--ansi", action="store_true", help="force colors; overrides environment-variable NO_COLOR")
ap2.add_argument("--no-voldump", action="store_true", help="do not list volumes and permissions on startup")
ap2.add_argument("--log-tdec", type=int, default=3, help="timestamp resolution / number of timestamp decimals")
ap2.add_argument("--log-conn", action="store_true", help="debug: print tcp-server msgs")
ap2.add_argument("--log-htp", action="store_true", help="debug: print http-server threadpool scaling")
ap2.add_argument("--ihead", metavar="HEADER", type=u, action='append', help="dump incoming header")

View file

@ -133,6 +133,9 @@ class SvcHub(object):
if not self._process_config():
raise Exception("bad config")
self.log_div = 10 ** (6 - args.log_tdec)
self.log_efmt = "%02d:%02d:%02d.%0{}d".format(args.log_tdec)
self.log_dfmt = "%04d-%04d-%06d.%0{}d".format(args.log_tdec)
self.log = self._log_disabled if args.q else self._log_enabled
if args.lo:
self._setup_logfile(printed)
@ -673,11 +676,11 @@ class SvcHub(object):
with self.log_mutex:
zd = datetime.utcnow()
ts = "%04d-%04d-%06d.%03d" % (
ts = self.log_dfmt % (
zd.year,
zd.month * 100 + zd.day,
(zd.hour * 100 + zd.minute) * 100 + zd.second,
zd.microsecond // 1000,
zd.microsecond // self.log_div,
)
self.logf.write("@%s [%s\033[0m] %s\n" % (ts, src, msg))
@ -729,11 +732,11 @@ class SvcHub(object):
msg = "%s%s\033[0m" % (c, msg)
zd = datetime.utcfromtimestamp(now)
ts = "%02d:%02d:%02d.%03d" % (
ts = self.log_efmt % (
zd.hour,
zd.minute,
zd.second,
zd.microsecond // 1000,
zd.microsecond // self.log_div,
)
msg = fmt % (ts, src, msg)
try: