import logging
import sys
def logexam1() :
# 別の場所で定義された myLogger を呼び出し
logger = logging.getLogger('myLogger')
logger.debug('デバックログ')
logger.info('infoログ')
logger.warning('warnログ')
logger.error('エラーログ')
logger.critical("致命的ログ")
def logexam2() :
# 別の場所で定義された myLogger を呼び出し
logger = logging.getLogger('myLogger')
logger.debug('デバックログ2')
logger.info('infoログ2')
logger.warning('warnログ2')
logger.error('エラーログ2')
logger.critical("致命的ログ2")
def logexam3() :
# 未定義の yourLogger を呼び出し
logger = logging.getLogger('yourLogger')
logger.debug('デバックログ3')
logger.info('infoログ3')
logger.warning('warnログ3')
logger.error('エラーログ3')
logger.critical("致命的ログ3")
def loggerInitialize() :
logger = logging.getLogger('myLogger')
logger.setLevel(logging.DEBUG) # 基本のログレベル
# ---------- 標準出力 ----------
sysoutHandler = logging.StreamHandler(sys.stdout)
sysoutFmt = logging.Formatter(\
'%(asctime)s : %(levelname)-8s : %(message)s (%(module)s.py L%(lineno)d %(funcName)s())')
sysoutHandler.setFormatter(sysoutFmt)
logger.addHandler(sysoutHandler)
# ---------- ファイル出力 ----------
# SJIS CRLF 上書きモード で出力する (設定しないと UTF-8 LF 追記(mode='a'))
# ・改行文字は Python3/Win32 でも LF。書式の最後に \r を入れる
# ・encodeing は ms932 にする。windows-31j はエラーになる
fileHandler = logging.FileHandler('log.txt', mode='w', encoding='ms932')
fileFmt = logging.Formatter('%(asctime)s : %(levelname)-8s : %(message)s\r')
fileHandler.setFormatter(fileFmt)
fileHandler.setLevel(logging.INFO) # handler でログレベルを上書き
logger.addHandler(fileHandler)
if __name__ == '__main__':
loggerInitialize()
logexam1()
logexam2()
2012-10-23 23:56:03,645 : DEBUG : デバックログ (logexam.py L6 logexam1()) 2012-10-23 23:56:03,645 : INFO : infoログ (logexam.py L7 logexam1()) 2012-10-23 23:56:03,645 : WARNING : warnログ (logexam.py L8 logexam1()) 2012-10-23 23:56:03,645 : ERROR : エラーログ (logexam.py L9 logexam1()) 2012-10-23 23:56:03,645 : CRITICAL : 致命的ログ (logexam.py L10 logexam1()) 2012-10-23 23:56:03,645 : DEBUG : デバックログ2 (logexam.py L14 logexam2()) 2012-10-23 23:56:03,645 : INFO : infoログ2 (logexam.py L15 logexam2()) 2012-10-23 23:56:03,645 : WARNING : warnログ2 (logexam.py L16 logexam2()) 2012-10-23 23:56:03,645 : ERROR : エラーログ2 (logexam.py L17 logexam2()) 2012-10-23 23:56:03,645 : CRITICAL : 致命的ログ2 (logexam.py L18 logexam2()) warnログ2 エラーログ2 致命的ログ2
>>> import logging >>> logging.basicConfig( format='%(levelname)s %(message)s', level=logging.INFO ) >>> logger = logging.getLogger('tempLogger') >>> logger.debug('debug') >>> logger.info('info') INFO info >>> logger.error('error') ERROR error
WindowsError: [Error 32] プロセスはファイルにアクセスできません。別のプロセスが使用中です。エラーが出る