zoukankan      html  css  js  c++  java
  • Python3-logging日志模块

    日志模块

    logging模块默认收集的日志是warning以上等级的

    日志一共分为5个等级,从低到高分别是:

    级别 说明
    DEBUG 输出详细的运行情况,主要用于调试
    INFO 确定一切按预期运行,一般用于输出重要运行情况
    WARNING 一些意想不到的事情发生了(比如:“警告:内存空间不足”),但是这个软件还能按预期工作,在不久的将来,会出现问题
    ERROR 发生错误,软件没能执行一些功能,还可以继续执行
    CRITICAL 一个严重的错误,表名程序本身可能无法继续运行

    导包

    import logging
    
    获取默认的日志收集器root
    my_log = logging.getLogger()
    
    设置默认的日志收集器等级
    my_log.setLevel('DEBUG')
    

    自定义日志收集器

    一、创建一个名为python的日志收集器
    my_log = logging.getLogger('python')
    
    二、设置日志收集器的等级
    my_log.setLevel('DEBUG')
    
    三、添加输出渠道
    ① 输出到控制台

    ####### 1、创建一个输出到控制台的输出渠道

    sh = logging.StreamHandler()
    

    ####### 2、设置输出等级

    sh.setLevel('ERROR')
    

    ####### 3、将输出渠道绑定到日志收集器上

    my_log.addHandler(sh)
    
    ② 输出到文件

    ####### 1、创建一个输出到文件中的输出渠道

    fh = logging.FileHandler('log.log', encoding='utf8')
    

    ####### 2、设置输出等级

    fh.setLevel('DEBUG')
    

    ####### 3、将输出渠道绑定到日志收集器上

    my_log.addHandler(fh)
    
    四、设置日志输出格式
    1、创建一个日志输出格式
    formatter = logging.Formatter('%(asctime)s - [%(filename)s-->line:%(lineno)d] - %(levelname)s: %(message)s')
    
    
    2、将输出格式和输出渠道进行绑定
    sh.setFormatter(formatter)
    fh.setFormatter(formatter)
    
    

    日志的轮转

    ① 按文件大小进行轮转

    from logging.handlers import RotatingFileHandler
    

    创建一个按文件大小轮转的文件输出渠道

    fh = RotatingFileHandler(filename=file_name,
                             mode='a',
                             encoding='utf8',
                             maxBytes=1024 * 1024 * 20,
                             backupCount=3)
    

    参数:

    • maxBytes:设置文件的大小(单位:字节)
      • 1024字节=1kb
      • 1024kb = 1Mb
    • backupCount:轮转的文件数量

    ② 按时间进行轮转

    from logging.handlers import TimedRotatingFileHandler
    

    创建一个按时间进行轮转的文件输出渠道

    fh = TimedRotatingFileHandler(filename=file_name,
                                  encoding='utf8',
                                  when='S',
                                  interval=1,
                                  backupCount=6)
    

    参数:

    • interval:设置时间间隔
    • when:设置间隔单位(默认H)
      • S-Seconds(秒)
      • M-Minutes(分钟)
      • H-Hours(小时)
      • D-Day(天)
    • backupCount:轮转的文件数量

  • 相关阅读:
    解决junit @RunWith无法使用的问题
    git .gitignore 有时不起作用的问题
    Docker常用命令 InsaneLoafer
    NOI2021 退役记
    2021“MINIEYE杯”中国大学生算法设计超级联赛 第二场 题解
    2021“MINIEYE杯”中国大学生算法设计超级联赛 第一场 题解
    数位DP
    Windows下Jmeter安装配置
    Linux安装docker-compose
    Ubuntu卸载MySQL
  • 原文地址:https://www.cnblogs.com/desireyang/p/12073100.html
Copyright © 2011-2022 走看看