pythonでログを処理するコードの例

3073 ワード

普段はデータ処理をしていますが、ログ記録機能は基本的に欠かせません。毎回セットするのが面倒くさいです。いっそモジュールを封入して記録して、みんなと共有します。
説明
このログモジュールは現在一つの方法しかありません。他の構成項目はパラメータを通して伝達されます。ログファイル名、等級、ログファイルの分割方式、ログクリアプロファイル、ログフォーマットなどが含まれます。
logger.py

import loggin

gfrom logging import handlers

#       

__level_dict = {  

'critical': logging.CRITICAL,  

'fatal': logging.CRITICAL,  

'error': logging.ERROR,  

 'warning': logging.WARNING,  

 'warn': logging.WARNING,  

 'info': logging.INFO,  

 'debug': logging.DEBUG

}

def getLogger(filename, level='info', when='D', backupCount=3,

       fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):

  """

          

 

  :param filename:       

  :param level:     :debug, info, warn/warning, error, critical

  :param when:            ,       :<br>

        - S  <br>

        - M  <br>

        - H   <br>

        - D  <br>

        - W    <br>

        - midnight     <br>

  :param backupCount:        ,        ,      

  :param fmt:       

  :return:

  """

  level = __level_dict.get(level.lower(), None)

  logger = logging.getLogger(filename)  #       

  format_str = logging.Formatter(fmt)  #       

  logger.setLevel(level)  #      

  console_handler = logging.StreamHandler()  #         

  console_handler.setFormatter(format_str)

  logger.addHandler(console_handler)  #     

  file_handler = handlers.TimedRotatingFileHandler(filename=filename, when=when, backupCount=backupCount,

                           encoding='utf-8')  #        

  file_handler.setFormatter(format_str) 

  logger.addHandler(file_handler)  return loggerif __name__ == '__main__':

  log = getLogger('test.log')

  log.debug('debug')

  log.info('info')

  log.warning('  ')

  log.error('  ')

  log.critical('  ')

  getLogger('error.log', level='error').error('error')
実行結果
2018-09-06 17:07:40,909-D:/jectbrains/workspace-pycharm/test/logger.py[line:59]-INFO:info
2018-09-06 17:07:40,909-D:/jectbrains/workspace-pycharm/test/logger.py[line:60]-WARNING:警告
2018-09-06 17:07:40,909-D:/jectbrains/workspace-pycharm/test/logger.py[line:61]-ERROR:エラーを報告します。
2018-09-06 17:07:40,910-D:/jectbrains/work space-pycharm/test/logger.py[line:62]-CRITICAL:深刻
2018-09-06 17:07:40,915-D:/jectbrains/workspace-pycharm/test/logger.py[line:63]-ERROR:erro
以上が今回の関連知識点の全部の内容とコードです。ご支持ありがとうございます。