zoukankan      html  css  js  c++  java
  • python--logging模块

    Logging模块

    import logging
    from logging import handlers
    ---单独日志打印模块

    logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别
                        filename='my.log',
                        filemode='a',   #每次写日志的模式,w清空以前的日志,a追加
                        format=
                        '%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
                        #日志格式
                        )
    logging.debug('debug级别,最低级别,一般开发人员用来打印一些调试信息')
    logging.info('info级别,正常输出信息,一般用来打印一些正常的操作')
    logging.warning('waring级别,一般用来打印警信息')
    logging.error('error级别,一般用来打印一些错误信息')

     

    ----------------------------
    日志输出模块
    # 1、创建办公室
    # 2、负责往控制台里面输出日志信息
    # 3、往日志文件里面写日志
    #4、按天生成日志,清理日志
    logger = logging.getLogger()  #先实例化一个logger对象,先创建一个办公室
    logger.setLevel(logging.DEBUG)  #设置日志级别
    #  这个不需要了 f1 = logging.FileHandler(filename='a.log',mode='a',encoding='utf-8')  #找到些日志文件的这个人
    cl = logging.StreamHandler()  #负责往控制台输出的
    b1= handlers.TimedRotatingFileHandler(filename='a.log',when='S',interval=2,backupCount=3,encoding='utf-8')
                # S
                # M
                # H 小时、
                # D 天、
                # W 每星期(interval==0时代表星期一)
                # midnight 每天凌晨
    fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    #指定日志的格式
    cl.setFormatter(fmt)        #设置控制台输出的日志格式
    b1.setFormatter(fmt)        #设置文件里写入的日志格式
    logger.addHandler(cl)    #把训练好的人放入办公室
    logger.addHandler(b1)

    测试代码:
    logger.debug('我是debug。。。。。')
    logger.warning('我是warning。。。。')
    # logger.error('我是warning。。。。')

    封装写日志的类

    import logging
    from logging import handlers

    class MyLogger():
        def __init__(self,file_name,leve='info',backCount=5,when='D'):
            logger = logging.getLogger()  # 先实例化一个logger对象,先创建一个办公室
            logger.setLevel(self.get_level(leve))  # 设置日志级别
            cl = logging.StreamHandler()  # 负责往控制台输出的
            b1 = handlers.TimedRotatingFileHandler(filename=file_name, when=when, interval=1, backupCount=backCount, encoding='utf-8')
            fmt = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s')
            cl.setFormatter(fmt)  # 设置控制台输出的日志格式
            b1.setFormatter(fmt)  # 设置文件里写入的日志格式
            logger.addHandler(cl)  # 把训练好的人放入办公室
            logger.addHandler(b1)
            self.logger = logger

        def get_level(self,str):
            leve = {
                'debug':logging.DEBUG,
                'info':logging.INFO,
                'warn':logging.WARNING,
                'error':logging.ERROR
            }
            str = str.lower()
            return leve.get(str)

    duan_log = MyLogger('DUJL.log')
    duan_log.logger.warning('哈哈哈')

  • 相关阅读:
    用鼠标滚轮做事件
    0927 匿名函数,隐藏显示层
    好友选中
    bzoj:1687;poj 2434:[Usaco2005 Open]Navigating the City 城市交通
    bzoj:1659: [Usaco2006 Mar]Lights Out 关灯
    bzoj:3392: [Usaco2005 Feb]Part Acquisition 交易
    bzoj:1723: [Usaco2009 Feb]The Leprechaun 寻宝
    poj 2434;bzoj 1686 [Usaco2005 Open]Waves 波纹
    bzoj:3397 [Usaco2009 Feb]Surround the Islands 环岛篱笆
    bzoj:3400 [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队
  • 原文地址:https://www.cnblogs.com/duanjialin007/p/9124114.html
Copyright © 2011-2022 走看看