Maison  >  Article  >  développement back-end  >  Comment traiter les journaux en utilisant Python (code)

Comment traiter les journaux en utilisant Python (code)

不言
不言original
2018-09-15 17:58:001974parcourir

Le contenu de cet article explique comment utiliser Python pour traiter les journaux (code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Le traitement quotidien des données est fondamentalement indissociable de la fonction de journalisation. C'est assez ennuyeux d'en configurer plusieurs à chaque fois, alors j'encapsule simplement un module et l'enregistre ici pour le partager avec tout le monde.

Explication

Ce module de journalisation n'a actuellement qu'une seule méthode, getLogger, et d'autres éléments de configuration sont transmis via des paramètres, notamment le nom du fichier journal, le niveau, la méthode de division du fichier journal, la configuration d'effacement du journal, le journal formats, 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;)

Exécuter les résultats

06/09/2018 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] - AVERTISSEMENT : Avertissement
09/2018 -06 17:07:40,909 - D:/jetbrains/workspace-pycharm/test/logger.py[line:61] - ERREUR : Erreur
2018-09-06 17:07:40,910 - D:/jetbrains/ workspace-pycharm/test/logger.py[line:62] - CRITIQUE : Critique

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

Recommandations associées :

Partage de classe de traitement de journaux simple Python

Comment utiliser python Faire fonctionner la base de données (mysql)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn