マイロガーとして使う
まあ、ここまでなら別になんてことはないんですが、
例えば、 warn,error,criticalはコンソールに、debug,infoはファイルに書き出すという
2種類のログを同時に取ってみる。
ソース
import sys,os,logging logging.basicConfig(level=logging.WARN, format='%(asctime)s %(levelname)s %(message)s') logging.critical('danger!!') logging.error('ERRROR!!') logging.warn('I am man.') logging.info('You are man.') logging.debug('Python!!') logfile = logging.FileHandler(r'C:\Mylogger.txt') format = logging.Formatter('[%(filename)s:%(lineno)d] %(asctime)s %(levelname)s %(message)s') logfile.setFormatter(format) logging.getLogger('MyLogger').addHandler(logfile) log = logging.getLogger('MyLogger') log.setLevel(logging.DEBUG) log.critical('MyLogger CRITICAL') log.error('MyLogger ERROR') log.warn('MyLogger WARN') log.info('MyLogger INFO') log.debug('MyLogger DEBUG') コンソール出力
2008-05-26 23:37:56,155 CRITICAL danger!! 2008-05-26 23:37:56,155 ERROR ERRROR!! 2008-05-26 23:37:56,171 WARNING I am man. 2008-05-26 23:37:56,171 CRITICAL MyLogger CRITICAL 2008-05-26 23:37:56,171 ERROR MyLogger ERROR 2008-05-26 23:37:56,171 WARNING MyLogger WARN 2008-05-26 23:37:56,187 INFO MyLogger INFO 2008-05-26 23:37:56,187 DEBUG MyLogger DEBUG
ファイルの中身
[logging2-test.py:21] 2008-05-26 23:40:24,765 CRITICAL MyLogger CRITICAL [logging2-test.py:22] 2008-05-26 23:40:24,780 ERROR MyLogger ERROR [logging2-test.py:23] 2008-05-26 23:40:24,780 WARNING MyLogger WARN [logging2-test.py:24] 2008-05-26 23:40:24,780 INFO MyLogger INFO [logging2-test.py:25] 2008-05-26 23:40:24,780 DEBUG MyLogger DEBUG
コンソールにはデフォルト(root)ロガーとMyLoggerのロガー出力がされて、
ファイルにはMyLoggerの出力のみで設定通りにうごいてるので、完了!!