Heim  >  Artikel  >  Backend-Entwicklung  >  So verarbeiten Sie Protokolle mit Python (Code)

So verarbeiten Sie Protokolle mit Python (Code)

不言
不言Original
2018-09-15 17:58:001940Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Verwendung von Python zur Verarbeitung von Protokollen (Code). Ich hoffe, dass er für Sie hilfreich ist.
Die tägliche Datenverarbeitung ist grundsätzlich untrennbar mit der Protokollierungsfunktion verbunden. Es ist ziemlich nervig, jedes Mal eine Menge davon zu konfigurieren, also kapsele ich einfach ein Modul und zeichne es hier auf, um es mit allen zu teilen.

Erklärung

Dieses Protokollmodul verfügt derzeit nur über eine Methode, getLogger, und andere Konfigurationselemente werden über Parameter übergeben, einschließlich Protokolldateiname, Ebene, Protokolldatei-Aufteilungsmethode, Protokolllöschkonfiguration, Protokoll Format usw.

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;)

Laufergebnisse

2018-09-06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:59 ] – INFO: info
06.09.2018 17:07:40,909 – D:/jetbrains/workspace-pycharm/test/logger.py[line:60] – WARNUNG: Warnung
06.09.2018 17:07:40,909 – D:/jetbrains/workspace-pycharm/test/logger.py[line:61] – FEHLER: Fehler
06.09.2018 17:07:40,910 – D:/jetbrains/workspace- pycharm/test/logger.py[line:62] – KRITISCH: Kritisch

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

Verwandte Empfehlungen:

Python einfache Protokollverarbeitungsklassenfreigabe

So verwenden Sie Python Datenbank (MySQL) führt Operationen aus

Das obige ist der detaillierte Inhalt vonSo verarbeiten Sie Protokolle mit Python (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn