Python's documentationに続いて、ログに記録された時間を制御するためにlogging.Formatter.converter
をオーバーライドしようとしています。
以下に見られるように、ミリ秒はオーバーライドされません(現在のミリ秒です)。Pythonロギング:ログ時間をオーバーライド
どうしてですか?どのようにしてミリ秒も制御できますか?
>>> import logging, datetime
>>> formatter = logging.Formatter('%(asctime)s:%(message)s')
>>> handler = logging.StreamHandler()
>>> handler.setFormatter(formatter)
>>> def sim_time(t):
... return datetime.datetime(2000,1,2,3,4,5,678).timetuple()
...
>>> formatter.converter = sim_time
>>> log = logging.getLogger('test')
>>> log.addHandler(handler)
>>> log.info('hi')
2000-01-02 03:04:05,898:hi
>>> log.info('hi')
2000-01-02 03:04:05,914:hi
>>> log.info('hi')
2000-01-02 03:04:05,434:hi