pythonでログを処理するコードの例
普段はデータ処理をしていますが、ログ記録機能は基本的に欠かせません。毎回セットするのが面倒くさいです。いっそモジュールを封入して記録して、みんなと共有します。
説明
このログモジュールは現在一つの方法しかありません。他の構成項目はパラメータを通して伝達されます。ログファイル名、等級、ログファイルの分割方式、ログクリアプロファイル、ログフォーマットなどが含まれます。
logger.py
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
以上が今回の関連知識点の全部の内容とコードです。ご支持ありがとうございます。
説明
このログモジュールは現在一つの方法しかありません。他の構成項目はパラメータを通して伝達されます。ログファイル名、等級、ログファイルの分割方式、ログクリアプロファイル、ログフォーマットなどが含まれます。
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
以上が今回の関連知識点の全部の内容とコードです。ご支持ありがとうございます。