Pythonでログを出す方法
pythonでツールを作る際に、これをコピペしておけばそこそこファイルとコンソールにタイムスタンプ付きでログを出せるメモ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class CustomLogFilter(logging.Filter): startTime = time.time() def filter(self, record): record.tickTime = time.time() - CustomLogFilter.startTime return True LOG = logging.getLogger("main") LOG.addHandler(logging.handlers.RotatingFileHandler( "copyLog.txt", maxBytes=1000*1000*10, backupCount=100)) LOG.addHandler(logging.StreamHandler()) LOG.addFilter(CustomLogFilter()) LOG.setLevel(logging.INFO) for hdr in LOG.handlers: hdr.setFormatter(logging.Formatter( "%(asctime)s [%(tickTime)0.3f] <%(levelname)1s> %(filename)s %(threadName)s %(message)s")) |
LOG.info(“end”) とか書けば、
2020-12-13 01:28:16,787 [10.148] main.py MainThread end
というログがファイルとコンソールに出力される。
コメントを残す