Home  >  Article  >  Backend Development  >  How to process logs using python (code)

How to process logs using python (code)

不言
不言Original
2018-09-15 17:58:001960browse

The content of this article is about how to use python to process logs (code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Usual data processing is basically inseparable from the logging function. It is quite annoying to configure a bunch of them every time, so I simply encapsulate a module and record it here to share with everyone.

Description

This log module currently only has one method, getLogger, and other configuration items are passed through parameters, including log file name, level, log file division method, log clearing configuration, log format, etc.

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=&#39;utf-8&#39;)    # 文件输出的格式
    file_handler.setFormatter(format_str) 
    logger.addHandler(file_handler)    return loggerif __name__ == &#39;__main__&#39;:
    log = getLogger(&#39;test.log&#39;)
    log.debug(&#39;debug&#39;)
    log.info(&#39;info&#39;)
    log.warning(&#39;警告&#39;)
    log.error(&#39;报错&#39;)
    log.critical(&#39;严重&#39;)
    getLogger(&#39;error.log&#39;, level=&#39;error&#39;).error(&#39;error&#39;)

Running results

2018-09-06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:59 ] - INFO: info
2018-09-06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:60] - WARNING: Warning
2018-09-06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:61] - ERROR: Error
2018-09-06 17:07:40,910 - D:/jetbrains/workspace- pycharm/test/logger.py[line:62] - CRITICAL: Serious

2018-09-06 17:07:40,915 - D:/jetbrains/workspace-pycharm/test/logger.py[line: 63] - ERROR: erro

Related recommendations:

Python simple log processing class sharing

How to use python to database (mysql) perform operations

The above is the detailed content of How to process logs using python (code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn