ロギングのサンプル(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 |