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

    import os
    import logging
    import time
    from logging import handlers
    
    
    class Logger():
        level_relations = {
            'debug':logging.DEBUG,
            'info':logging.INFO,
            'warning':logging.WARNING,
            'error':logging.ERROR,
            'crit':logging.CRITICAL
        }#日志级别关系映射
        def __init__(self,level='info',when='D',backCount=3,fmt='%(asctime)s - %(levelname)s: %(message)s'):
            # 获取当前目录
            CURRENT_FOLDER = os.path.split(os.path.realpath(__file__))[0]
            LOG_FOLDER = os.path.join(CURRENT_FOLDER, 'log')
            #LOG_FILE_PATH = os.path.join(LOG_FOLDER, 'log.txt')
            # 获取当前日期
            time_str = time.strftime("%Y-%m-%d")
            #判断文件夹是否存在
            if not os.path.exists(LOG_FOLDER):
                os.mkdir(LOG_FOLDER)
            # 日志文件
            log_file = os.path.join(LOG_FOLDER, "{}.txt".format(time_str))
            self.logger = logging.getLogger(log_file)
            format_str = logging.Formatter(fmt)#设置日志格式
            self.logger.setLevel(self.level_relations.get(level))#设置日志级别
            sh = logging.StreamHandler()#往屏幕上输出
            sh.setFormatter(format_str) #设置屏幕上显示的格式
            th = handlers.TimedRotatingFileHandler(filename=log_file,when=when,backupCount=backCount,encoding='utf-8')#往文件里写入#指定间隔时间自动生成文件的处理器
            th.setFormatter(format_str)#设置文件里写入的格式
            self.logger.addHandler(sh) #把对象加到logger里
            self.logger.addHandler(th)
    
    
    if __name__ == '__main__':
        """示例代码"""
        # 日期文件对象
        log = Logger(level='debug')
        log.logger.info("输入")
        log.logger.error('异常')
        log.logger.warning("警告")
  • 相关阅读:
    C#类型转换
    C#面向对象之多态
    C#面向对象之继承
    C#各种字段类型对比
    C#关键字:static
    C#面向对象之封装
    C#关键字:访问修饰符
    C#类型成员:构造函数
    C#类型成员:方法
    C#类类型
  • 原文地址:https://www.cnblogs.com/98WDJ/p/14031029.html
Copyright © 2011-2022 走看看