コードからすぐに使えるようにするには、
もっとも簡単な出力
設定なしでrootLoggerで出力する。標準出力に出力される。
defaultの出力レベルは、logging.WARNなので、infoやdebugは出力されない。
import logging logging.debug("debug message") logging.info("info message") logging.warn("warn") logging.error("error")
$ ./log-test.py WARNING:root:warn ERROR:root:error
出力レベルの変更
logging.basicConfigでrootLoggerの簡単な設定ができる。
import logging logging.basicConfig(level=logging.DEBUG) logging.debug("debug message") logging.info("info message") logging.warn("warn message") logging.error("error message")
$./log-test.py DEBUG:root:debug message INFO:root:info message WARNING:root:warn message ERROR:root:error message
basicConfigでの設定は、rootLoggerの設定がない場合にのみ行われるので、最初に設定してあとから変更しないようなケースで利用する。
書式の設定
basicConfigでの設定時に出力書式を指定する。
... logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)-7s %(message)s") ...
$ ./log-test.py 2012-04-20 09:17:34,857 DEBUG debug message 2012-04-20 09:17:34,857 INFO info message 2012-04-20 09:17:34,858 WARNING warn message 2012-04-20 09:17:34,858 ERROR error message
書式文字列については以下を参照。
属性名 | フォーマット | 説明 |
---|---|---|
asctime | %(asctime)s | LogRecord が生成された時刻を人間が読める書式で表したもの。デフォルトでは “2003-07-08 16:49:45,896” 形式 (コンマ以降の数字は時刻のミリ秒部分) です。 |
filename | %(filename)s | pathname のファイル名部分。 |
funcName | %(funcName)s | ロギングの呼び出しを含む関数の名前。 |
levelname | %(levelname)s | メッセージのための文字のロギングレベル ('DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL')。 |
lineno | %(lineno)d | ロギングの呼び出しが発せられたソース行番号 (利用できる場合のみ)。 |
module | %(module)s | モジュール (filename の名前部分)。 |
msecs | %(msecs)d | LogRecord が生成された時刻のミリ秒部分。 |
message | %(message)s | msg % args として求められた、ログメッセージ。 Formatter.format() が呼び出されたときに設定されます。 |
name | %(name)s | ロギングに使われたロガーの名前。 |
pathname | %(pathname)s | ロギングの呼び出しが発せられたファイルの完全なパス名 (利用できる場合のみ)。 |
process | %(process)d | プロセス ID (利用可能な場合のみ)。 |
thread | %(thread)d | スレッド ID (利用可能な場合のみ)。 |
threadName | %(threadName)s | スレッド名 (利用可能な場合のみ)。 |