zoukankan      html  css  js  c++  java
  • python——logging日志模块

    01日志等级

    import logging
    
    logging.debug("这是一条debug级别的日志")
    logging.info("这是一条info级别的日志")
    logging.warning("这是一条warning级别的日志")
    logging.error("这是一条error级别的日志")
    logging.critical("这是一条critical级别的日志")

     

    02日志输出渠道

    日志输出渠道:

    1、输出到控制台

    2、输出到文件

    
    import logging
    
    # 创建一个日志收集器(如果不传参数name,会返回默认的日志收集器root)
    mylog = logging.getLogger()
    
    # 设置日志收集器收集的等级
    mylog.setLevel("DEBUG")
    
    # 设置日志输出的等级
    # 创建一个输出到控制台的输出渠道
    sh = logging.StreamHandler()
    # 设置输出渠道的输出等级
    sh.setLevel("ERROR")
    # 将输出渠道和日志收集器绑定
    mylog.addHandler(sh)
    
    # 创建一个输出到文件的输出渠道
    fh = logging.FileHandler("all.log",encoding="utf8")
    fh.setLevel("DEBUG")
    mylog.addHandler(fh)
    
    logging.debug("这是一条debug级别的日志")
    logging.info("这是一条info级别的日志")
    logging.warning("这是一条warning级别的日志")
    logging.error("这是一条error级别的日志")
    logging.critical("这是一条critical级别的日志")

    03创建一个自己的日志收集器

    import logging
    
    # 第一步:创建一个日志收集器
    log = logging.getLogger("logtest")
    
    # 第二步:设置收集器收集的等级
    log.setLevel("DEBUG")
    
    # 第三步:设置输出渠道以及输出渠道的等级
    #输出到文件
    fh = logging.FileHandler("mylog.log", encoding="utf8")
    fh.setLevel("DEBUG")
    log.addHandler(fh)
    
    #输出到控制台
    sh = logging.StreamHandler()
    sh.setLevel("WARNING")
    log.addHandler(sh)
    
    
    # 第四步:设置输出格式
    formats='%(asctime)s -- [%(filename)s-->line:%(lineno)d] - %(levelname)s: %(message)s'
    # 创建一个输出格式对象
    form = logging.Formatter(formats)
    # 将输出格式添加到输出渠道
    fh.setFormatter(form)
    sh.setFormatter(form)
    
    log.info("-------------info等级的日志-------------")
    log.error("-------------error等级的日志-------------")
    
    # 输出日志
    # 注意点:自己创建的的日志收集器收集,要使用收集器取记录,不能直接使用logging去记录
    # logging.error("----------------error----------")

    05日志轮转

    from logging.handlers import TimedRotatingFileHandler,RotatingFileHandler
    
    import logging
    
    # 第一步:创建一个日志收集器
    log = logging.getLogger("musen")
    
    # 第二步:设置收集器收集的等级
    log.setLevel("DEBUG")
    
    
    # 第三步:创建输出渠道
    # 创建一个按时间进行轮转的文件输出渠道
    # fh = TimedRotatingFileHandler("user.log",encoding="utf8",when="S",interval=1,backupCount=7)
    # fh.setLevel("DEBUG")
    # log.addHandler(fh)
    
    # 按文件大小进行轮转
    fh = RotatingFileHandler("musen.log",encoding="utf8",maxBytes=1024*1024*20,backupCount=7)
    fh.setLevel("DEBUG")
    log.addHandler(fh)
    
    
    # 第四步:设置输出格式
    formats='%(asctime)s -- [%(filename)s-->line:%(lineno)d] - %(levelname)s: %(message)s'
    # 创建一个输出格式对象
    form = logging.Formatter(formats)
    # 将输出格式添加到输出渠道
    fh.setFormatter(form)

     

  • 相关阅读:
    【转】Flask安装
    【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置
    【转】谁说Vim不是IDE?(二)
    【转】谁说Vim不是IDE?(三)
    【转】谁说Vim不是IDE?(一)
    【转】终极 Shell
    【转】开始使用Mac OS X——写给Mac新人
    【转】如何实现一个malloc
    《神经网络和深度学习》系列文章十六:反向传播算法代码
    Vue.js之生命周期
  • 原文地址:https://www.cnblogs.com/erchun/p/12493649.html
Copyright © 2011-2022 走看看