loggingの設定ファイル(.conf, .ini等)を作成し、それを用いることでコンソールとログファイルに同時に異なるログレベルの結果を出力することができる。 これは、開発時のデバッグや、運用時にログ解析に便利だと思った。
logging.conf
[loggers] keys=root [handlers] keys=consoleHandler, fileHandler [logger_root] handlers=consoleHandler,fileHandler level=DEBUG [logger_fileExample] handlers=fileHandler level=DEBUG qualname=fileExample propagate=0 [handler_consoleHandler] class=StreamHandler level=INFO formatter=logFormatter args=(sys.stdout, ) [handler_fileHandler] class=FileHandler level=DEBUG formatter=logFormatter args=('test.log', ) [formatters] keys=logFormatter [formatter_logFormatter] class=logging.Formatter format=%(asctime)s:%(lineno)d:%(levelname)s:%(message)s
import logging.config # ログ設定ファイルからログ設定を読み込み logging.config.fileConfig('logging.conf') logger = logging.getLogger('simpleExample') logger.info('info') logger.warning('warning')
コンソールの出力結果
2021-04-27 10:06:57,672:30:INFO:info 2021-04-27 10:06:57,672:31:WARNING:warning
ログファイル:test.logの出力結果
2021-04-27 10:06:57,672:30:INFO:info 2021-04-27 10:06:57,672:31:WARNING:warning 2021-04-27 10:06:57,672:32:DEBUG:debug
コンソールから確認できないDEBUGのログが、 ログファイルから確認できる。
参考