Python——loggingモジュール
2173 ワード
多くのプログラムはログを記録する必要があり、ログに含まれる情報は正常なプログラムアクセスログであり、エラーや警告などの情報出力もある可能性があります.pythonのloggingモジュールは標準的なログインタフェースを提供しています.それによって様々なフォーマットのログを格納することができます.loggingのログはdebug()、info()、warning()、error()、critical()の5つのレベルに分けることができます.
等級の高低
CRITICAL>ERROR>WARNING>INFO>DEBUG>NOTEST
loggingレベルの設定
loggingを使用するとレベル設定があり、デフォルト設定はwarningレベルです.つまりwarningより高いlogはログレベルの設定を印刷します. filemode:ファイルの開き方filenameを指定するときにこのパラメータを使用します.デフォルト値は「a」でw にも指定できます.
formatパラメータで使用可能なフォーマット列:%(name)s Loggerの名前%(levelno)s数値形式のログレベル%(levelname)sテキスト形式のログレベル%(pathname)sログ出力関数を呼び出すモジュールの完全なパス名%s(filename)sがログ出力関数を呼び出すモジュールのファイル名%(module)sがログ出力関数を呼び出すモジュール名%(funcName)sがログ出力関数を呼び出す関数名%(lineno)dがログ出力関数を呼び出す文があるコード行%(created)f現在時刻がない場合があります.UNIX規格の時間を表す浮動小数点数%dでログ情報を出力した場合の、Logger作成以降のミリ秒数%s文字列形式の現在時間.デフォルトのフォーマットは「2003-07-08 16:49:45896」です.カンマの後ろにはミリ秒%(thread)dスレッドIDがあります.%(threadName)sスレッド名がない場合があります.%dプロセスIDがない可能性があります.%(message)sユーザーが出力するメッセージがない可能性があります
loggerオブジェクト
モジュールレベルの関数
loggingライブラリには、Logger、Handler、Filter、Formatterの複数のコンポーネントがあります.Loggerオブジェクトはアプリケーションが直接使用できるインタフェースを提供し、Handlerは適切な宛先にログを送信し、Filterはログ情報をフィルタする方法を提供し、Formatterはログ表示フォーマットを指定する.
logger.setLevel(logging.DEBUG)は、loggerのログレベルを設定するために表示されるので、デフォルトのログレベルWARNINGを使用し、
等級の高低
CRITICAL>ERROR>WARNING>INFO>DEBUG>NOTEST
loggingレベルの設定
loggingを使用するとレベル設定があり、デフォルト設定はwarningレベルです.つまりwarningより高いlogはログレベルの設定を印刷します.
logging.basicConfig(level=logging.DEBUG,
format = '%(asctime)s %(filename)s[line:%(lineno)d]%(levelname)s%(message)'
datefmt = '%a,%d,%b,%Y,%H:%M:%S',
filename='/tmp/test.log'
filemode='w'
)
formatパラメータで使用可能なフォーマット列:%(name)s Loggerの名前%(levelno)s数値形式のログレベル%(levelname)sテキスト形式のログレベル%(pathname)sログ出力関数を呼び出すモジュールの完全なパス名%s(filename)sがログ出力関数を呼び出すモジュールのファイル名%(module)sがログ出力関数を呼び出すモジュール名%(funcName)sがログ出力関数を呼び出す関数名%(lineno)dがログ出力関数を呼び出す文があるコード行%(created)f現在時刻がない場合があります.UNIX規格の時間を表す浮動小数点数%dでログ情報を出力した場合の、Logger作成以降のミリ秒数%s文字列形式の現在時間.デフォルトのフォーマットは「2003-07-08 16:49:45896」です.カンマの後ろにはミリ秒%(thread)dスレッドIDがあります.%(threadName)sスレッド名がない場合があります.%dプロセスIDがない可能性があります.%(message)sユーザーが出力するメッセージがない可能性があります
loggerオブジェクト
モジュールレベルの関数
import logging
logger = logging.getLogger()
# handler,
fh = logging.FileHandler('test.log')
# handler,
ch = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh) #logger fh ch
logger.addHandler(ch)
logger.debug('logger debug message')
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message')
loggingライブラリには、Logger、Handler、Filter、Formatterの複数のコンポーネントがあります.Loggerオブジェクトはアプリケーションが直接使用できるインタフェースを提供し、Handlerは適切な宛先にログを送信し、Filterはログ情報をフィルタする方法を提供し、Formatterはログ表示フォーマットを指定する.
logger.setLevel(logging.DEBUG)は、loggerのログレベルを設定するために表示されるので、デフォルトのログレベルWARNINGを使用し、