# HG changeset patch # User Matt DeVore # Date 2018-10-17 22:48:01 # Node ID 25f1c7bd649d2ae4ef6fd21a39cafaad81418c8f # Parent 5d8f291405e5a0025620805a366feb887f1e8804 blackbox: add configitem for format of log timestamps Sometimes blackbox logs are used to report performance problems, but the timestamps are only at second granularity, so often the timings have to stated separately by the reporter. This is inconvenient and error-prone, so I would like to include %f in the date format. This patch makes that possible. diff --git a/hgext/blackbox.py b/hgext/blackbox.py --- a/hgext/blackbox.py +++ b/hgext/blackbox.py @@ -33,6 +33,11 @@ Examples:: # rotate up to N log files when the current one gets too big maxfiles = 3 + [blackbox] + # Include nanoseconds in log entries with %f (see Python function + # datetime.datetime.strftime) + date-format = '%Y-%m-%d @ %H:%M:%S.%f' + """ from __future__ import absolute_import @@ -82,6 +87,9 @@ configitem('blackbox', 'maxfiles', configitem('blackbox', 'track', default=lambda: ['*'], ) +configitem('blackbox', 'date-format', + default='%Y/%m/%d %H:%M:%S', +) lastui = None @@ -169,7 +177,8 @@ def wrapui(ui): return ui._bbinlog = True default = self.configdate('devel', 'default-date') - date = dateutil.datestr(default, '%Y/%m/%d %H:%M:%S') + date = dateutil.datestr(default, + ui.config('blackbox', 'date-format')) user = procutil.getuser() pid = '%d' % procutil.getpid() formattedmsg = msg[0] % msg[1:] diff --git a/tests/test-blackbox.t b/tests/test-blackbox.t --- a/tests/test-blackbox.t +++ b/tests/test-blackbox.t @@ -82,6 +82,16 @@ recursive aliases work correctly 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> so-confusing exited 0 after * seconds (glob) 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox +custom date format + $ rm ./.hg/blackbox.log + $ hg --config blackbox.date-format='%Y-%m-%d @ %H:%M:%S' \ + > --config devel.default-date='1334347993 0' --traceback status + A a + $ hg blackbox + 2012-04-13 @ 20:13:13 bob @0000000000000000000000000000000000000000 (5000)> --config 'blackbox.date-format=%Y-%m-%d @ %H:%M:%S' --config 'devel.default-date=1334347993 0' --traceback status + 2012-04-13 @ 20:13:13 bob @0000000000000000000000000000000000000000 (5000)> --config 'blackbox.date-format=%Y-%m-%d @ %H:%M:%S' --config 'devel.default-date=1334347993 0' --traceback status exited 0 after * seconds (glob) + 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox + incoming change tracking create two heads to verify that we only see one change in the log later