zoukankan      html  css  js  c++  java
  • Python:写入日志文件

    python可以在执行时写入日志用于查找问题,这里提供一个类,在需要的时候就可以直接使用:

    import logging
    from logging import handlers
    
    class Logger(object):
        level_relations = {
            'debug':logging.DEBUG,
            'info':logging.INFO,
            'warning':logging.WARNING,
            'error':logging.ERROR,
            'crit':logging.CRITICAL
        }     #日志关系映射
    
        def __init__(self,filename,level='info',backCount=10,fmt='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'):
            self.logger = logging.getLogger(filename)
            format_str = logging.Formatter(fmt)                  #设置日志格式
            self.logger.setLevel(self.level_relations.get(level))#设置日志级别
            
            sh = logging.StreamHandler()  #往屏幕上输出
            sh.setFormatter(format_str)   #设置屏幕上显示的格式
            self.logger.addHandler(sh)    #把对象加到logger里
            
            fh = handlers.RotatingFileHandler(filename=filename,maxBytes=10485760,backupCount=backCount)   # 按照文件大小分割日志文件
            fh.setLevel(self.level_relations.get(level))
            fh.setFormatter(format_str)   #设置文件里写入的格式
            self.logger.addHandler(fh)
            
    if __name__ == '__main__':
        log = Logger('my_test.log',level='debug')
        log.logger.debug('------0. it is a debug ------')
        log.logger.info('------ 1. it is a test ------')
        log.logger.warning('------ 2. it is a warning ------')
        log.logger.error('------ 3. it is an error ------')
        log.logger.critical('------ 4. serious problem ------')

    屏幕显示:

    同样可以在文件夹下找到 my_test.log文件。

    日志级别: debug --> info --> warning --> error --> critical。

    日志级别使用备注
    DEBUG 详细信息,调试使用
    INFO 正常信息
    WARNING 警告信息
    ERROR 错误信息
    CRITICAL 问题很严重

    注:

    handlers.TimedRotatingFileHandler  ---> 可以按时间分割日志文件 

    #

    更多解释和说明可参考某大神博客:https://www.cnblogs.com/nancyzhu/p/8551506.html

  • 相关阅读:
    MySQL Binlog信息查看
    MySQL Binlog和Relaylog生成和清理
    MySQL Binlogbinlog_format参数
    Maven的核心概念及安装
    Maven工程约定目录结构
    解决 internal/modules/cjs/loader.js:983 throw err; ^ Error: Cannot find module ‘express‘ 报错问题
    Linux之开机、重启和用户登录注销等操作
    Linux之系统文件概述
    Linux之基本指令
    express的基本使用
  • 原文地址:https://www.cnblogs.com/qi-yuan-008/p/13806135.html
Copyright © 2011-2022 走看看