Python ロギング日付ローテーションのスニペット

Python を書くようになって日が浅い。
ロギングの詳細マニュアル
https://docs.python.jp/3.6/library/logging.html
https://docs.python.jp/3.6/library/logging.config.html
https://docs.python.jp/3.6/library/logging.handlers.html

日付ローテーションの設定ソース
  (フォーマットはいろいろポリシーあると思うが、サンプルとして)
例)logging.ini

[loggers]
keys=root

[handlers]
keys=fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=fileHandler

[handler_fileHandler]
class=handlers.TimedRotatingFileHandler
formatter=simpleFormatter
args=('/var/log/test.log','D',1, 7,'utf-8')

[formatter_simpleFormatter]
format = %(asctime)s.%(msecs)03d %(levelname)5s [%(message)s] [%(funcName)s  %(processName)s - %(threadName)s]
datefmt = %Y/%m/%d %H:%M:%S

[loggers], [handlers], [formatters] セクションは必須で
この keys が指すセクションで、個々の設定を記述する。
TimedRotatingFileHandler に指定する パラメータ arg s は、マニュアルに書いてある以下に従う。

TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0
, encoding=None, delay=False, utc=False, atTime=None)

呼出し例

# -*- coding: UTF-8 -*-
import logging.config

logging.config.fileConfig("logging.ini")

logger = logging.getLogger()
userid = "aa123-03dd2"
logger.debug("user id = %s" % userid)

ログファイル結果

2018/08/29 20:45:24.322 DEBUG [user id = aa123-03dd2] [<module>  MainProcess - MainThread]

難点は、、、
タブ文字をフォーマットで指定する為の制御がない!
ミリ秒を出力するのに、%(msecs)03d と書く必要がある。