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:轮转的文件数量

  • 相关阅读:
    内存页面的各种属性(就是Read, Write, Execute的组合)
    分配粒度和内存页面大小(x86处理器平台的分配粒度是64K,内存页是4K,所以section都是0x1000对齐,硬盘扇区大小是512字节,所以PE文件默认文件对齐是0x200)
    NULL指针区域(NULL定义为0-65535之间的任何数都可以)
    Tiny Mapper是一个.net平台开源的对象映射组件
    表达式树动态拼接lambda
    VSC调试.NET Core 应用程序
    领域驱动设计之单元测试最佳实践
    web框架python
    无需安装Mono的Jexus
    分布式发布订阅消息系统Kafka
  • 原文地址:https://www.cnblogs.com/desireyang/p/12073100.html
Copyright © 2011-2022 走看看