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

    """
    # filename: 文件名
    # format: 数据的格式化输出. 最终在日志文件中的样子
    # 时间-名称-级别-模块: 错误信息
    # datefmt: 时间的格式
    # level: 错误的级别权重, 当错误的级别权重⼤于等于leval的时候才会写入⽂件 
    logging.basicConfig(filename='x1.txt',
                        format='%(asctime)s - %(name)s - %(levelname)s -%
    (module)s:  %(message)s',datefmt='%Y-%m-%d %H:%M:%S',level=10) 
    # 当前配置表示10以上的分数会被写⼊文件
    # CRITICAL = 50
    # FATAL = CRITICAL
    # ERROR = 40
    # WARNING = 30
    # WARN = WARNING
    # INFO = 20
    # DEBUG = 10
    # NOTSET = 0
    logging.critical("我是critical") # 50分
    logging.error("我是error") # 40分
    logging.warning("我是警告")  # 30
    logging.info("我是基本信息")  # 20
    logging.debug("我是调试") # 10
    logging.log(2, "我是自定义") # 自定义,看着给分;
    
    可以设置不同的日志等级,用于控制日志的输出,
    
    
    日志等级:使用范围
    
    FATAL:致命错误
    CRITICAL:特别糟糕的事情,如内存耗尽、磁盘空间为空,一般很少使用
    ERROR:发生错误时,如IO操作失败或者连接问题
    WARNING:发生很重要的事件,但是并不是错误时,如用户登录密码错误
    INFO:处理请求或者状态变化等日常事务
    DEBUG:调试过程中使用DEBUG等级,如算法中每个循环的中间状态
    
    """
    
    # 一般会通过文件助手(FileHandler)来记录一个或多个日志
    
    import logging
    
    # 创建一个操作⽇志的对象logger(依赖FileHandler)
    file_handler = logging.FileHandler('l1.log', 'a', encoding='utf-8') 
    file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - % (levelname)s -%(module)s: %(message)s"))
    logger1 = logging.Logger('s1', level=logging.ERROR)
    logger1.addHandler(file_handler)
    logger1.error('我是A系统')
    
     # 再创建一个操作日志的对象logger(依赖FileHandler)
    file_handler2 = logging.FileHandler('l2.log', 'a', encoding='utf-8') 
    file_handler2.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s"))
    logger2 = logging.Logger('s2', level=logging.ERROR)
    logger2.addHandler(file_handler2)
    logger2.error('我是B系统')
    
    
    
    # FileHandler 实例
    
    import logging
    import traceback
    
    
    class LoggerHelper(object):
        _i = None
    
        @classmethod
        def instance(cls):
            if cls._i:
                return cls._i
            else:
                cls._i = LoggerHelper()  # LoggerHelper()
                return cls._i  # obj
    
        def __init__(self):
            error_log_file = logging.FileHandler('cdn_refersh_error.log', 'a+', encoding='utf-8')
            error_log_fmt = logging.Formatter(fmt="%(asctime)s %(name)s %(message)s")
            error_log_file.setFormatter(error_log_fmt)
            error_logger = logging.Logger('ERROR', level=logging.ERROR)
            error_logger.addHandler(error_log_file)
            self.error_logger = error_logger
    
            access_log_file = logging.FileHandler('cdn_refersh_access.log', 'a+', encoding='utf-8')
            access_log_fmt = logging.Formatter(fmt="%(asctime)s %(name)s %(message)s")
            access_log_file.setFormatter(access_log_fmt)
            access_logger = logging.Logger('INFO', level=logging.INFO)
            access_logger.addHandler(access_log_file)
            self.access_logger = access_logger
    
    
    log = LoggerHelper.instance()
    
    try:
        print(1 / 0)
    except Exception as e:
        log.error_logger.log(logging.ERROR, e)
        log.error_logger.error(traceback.format_exc())
        log.access_logger.log(logging.INFO, e)
        log.access_logger.info(e)
    

      

  • 相关阅读:
    python核心编程课后题第二版36页第二章
    Python每个N个字符插入一个符号
    python核心编程课后题第二版97页第五章
    意外的 404 错误
    WCF简单使用(分别部署在控制台和IIS上)
    最近看的项目cakephp
    我正在翻译的CakePHP manual
    C# 高质量编程
    Android 环境搭建
    MVC 读配置文件 多语言
  • 原文地址:https://www.cnblogs.com/fanghongbo/p/9971072.html
Copyright © 2011-2022 走看看