pythonでログ出力
pythonのロギング機能は挙動を色々設定できる。便利なんだが、大抵の人間はファイル出力してトラブった時に見るという使い方しかしないのでは?document見るのもめんどくせぇ、という方は↓のコードをpython pathの通ってるモジュールに置いとけば幸せになれる。
import os import logging import logging.handlers def logger(level): log_file = homePath + '\\debuglog\\log' # 出力先はご自由に if os.path.exists(homePath + '\\debuglog') == False: os.mkdir(homePath+'\\debuglog') log = logging.getLogger() handler = logging.handlers.RotatingFileHandler( log_file, maxBytes=(5*1024*1024), backupCount=1000) handler.setFormatter( logging.Formatter('%(asctime)s\t%(module)s:%(funcName)s\t%(lineno)d\t%(levelname)s\t- %(message)s') ) log.addHandler( handler ) log.setLevel( level ) return log mylogger = logger(logging.DEBUG) # 出力するレベルもご自由に [INFO, WARN, ERROR]
用例
opener = urllib2.build_opener( urllib2.HTTPHandler(), urllib2.HTTPSHandler(), urllib2.ProxyHandler({ 'http': 'http://hogehoge:80', 'https': 'https://hogehoge:80' })) urllib2.install_opener(opener) try: url = urllib2.urlopen('https://www.hatena.ne.jp/login') mylogger.info('Url opened: ' + url.geturl()) except urllib2.HTTPError, e: mylogger.error(e) raise MysException(e) except urllib2.URLError, e: mylogger.error(e) raise MysException(e) ############## 出力結果 ###################### # 2012-06-12 12:46:00,069 net:url_open 16 INFO - Url opened: https://www.hatena.ne.jp/login ##############################################