ロギングのサンプル(logging)
デバッグや運用時のエラー等の運用で必要になるので調べました。
コンフィグでファイル出力やメール送信等もできるとのこと。
logging.basicConfig(filename=’apl.log’,level=logging.DEBUG)
import logging # sampleloggerという名前のロガーを作成 outlog = logging.getLogger("samplelogger") logsh = logging.StreamHandler() #ログのローマットを設定 lformat = logging.Formatter('%(asctime)s [%(levelname)s] %(name)s %(message)s') logsh.setFormatter(lformat) outlog.addHandler(logsh) # print("LogLevel(Default) = " , outlog.getEffectiveLevel()) # デフォルトのログレベルはWARNING(30)でした。 outlog.setLevel(logging.DEBUG) #ログレベルを10に設定 print("LogLevel(Set) = " , outlog.getEffectiveLevel() ) outlog.info("testlog info") outlog.warning("testlog warning") outlog.critical("testlog critical") outlog.error("testlog error") outlog.log(logging.ERROR,"testlog loglevel 30")
【出力結果】
LogLevel(Set) = 10
2016-12-07 03:08:07,363 [INFO] samplelogger test info
2016-12-07 03:08:07,363 [WARNING] samplelogger test warning
2016-12-07 03:08:07,363 [CRITICAL] samplelogger test critical
2016-12-07 03:08:07,364 [ERROR] samplelogger test error
2016-12-07 03:08:07,364 [ERROR] samplelogger test loglevel 30
※設定されているログレベルより低いレベルのログは、出力されません。
ログレベル | 数値 | 定数 |
---|---|---|
NOTSET | 0 | logging.NOTSET |
DEBUG | 10 | logging.DEBUG |
INFO | 20 | logging.INFO |
WARNING | 30 | logging.WARNING |
ERROR | 40 | logging.ERROR |
CRITICAL | 50 | logging.CRITICAL |