zoukankan      html  css  js  c++  java
  • 日志学习(二)——日志处理封装

    配置文件 testcase.conf

    [log]
    logger_name = case
    logger_level = DEBUG
    logger_failname = case.log
    console_level = ERROR
    file_level = INFO
    # 使用%来转义%,不转义会报错
    simple_formatter = %%(asctime)s - [%%(levelname)s]- [%%(message)s]
    verbose_formatter = %%(asctime)s - [%%(levelname)s] - [%%(message)s] - [%%(module)s- [%%(lineno)d]]

    处理日志hand_log.py文件

    import logging
    
    from python_0724_handle_log.handle_config import do_config
    class HandleLog:
        """
        封装日志类
        """
    
        def __init__(self):
            # 1、定义日志收集器
    
            self.case_logger = logging.getLogger(do_config.get_value("log","logger_name"))  # 会创建一个logger对象
    
            # 2、指定日志收集器的日志等级
            # 只能收集当前等级和当前等级以上级别的日志
            # 方法一
            self.case_logger.setLevel(do_config.get_value("log","logger_level"))  # 即能收集DEBUG和DEBUG以上级别的日志
            # 方法二
            # self.case_logger.setLevel("DEBUG")
    
            # 3、定义日志输出渠道
            # 输出到控制台
            console_handle = logging.StreamHandler()  # 返回一个handler对象
    
            # 输出到文件
            file_handle = logging.FileHandler(do_config.get_value("log","logger_failname"),
                                              encoding="utf-8")
    
            # 4、指定日志输出渠道的日志等级
            # 控制台
            console_handle.setLevel(do_config.get_value("log","console_level"))
            # 文件
            file_handle.setLevel(do_config.get_value("log","file_level"))
    
            # 5、定义日志显示格式
            simple_formatter = logging.Formatter(do_config.get_value("log","simple_formatter"))
            verbose_formatter = logging.Formatter(
                do_config.get_value("log","verbose_formatter"))
    
            console_handle.setFormatter(simple_formatter)  # 控制台显示简单的日志
            file_handle.setFormatter(verbose_formatter)  # 日志文件中显示详细日志
    
            # 6、对接、将日志收集器与输出渠道对接
            self.case_logger.addHandler(console_handle)
            self.case_logger.addHandler(file_handle)
    
    
        def get_logger(self):
            """
            获取logger日志器对象
            :return:
            """
            return self.case_logger
    
    
    # do_log = HandleLog()
    # case_logger = do_log.get_logger()
    
    do_log = HandleLog().get_logger()
    
    
    
    if __name__=='__main__':
        do_log = HandleLog()
        case_logger = do_log.get_logger()
        case_logger.debug("这是一个debug级别的日志")  # 手动记录日志
        case_logger.info("这是一个info级别的日志")
        case_logger.warning("这是一个warning级别的日志")
        case_logger.error("这是一个error级别的日志")
        case_logger.critical("这是一个critical级别的日志")

    handle_log的运行结果:

  • 相关阅读:
    Oracle 多版本控制
    texedo 分布式事务
    OLAP 大表和小表并行hash join
    分页SQL模板
    全表扫描分页
    索引的结构图
    利用函数索引优化<>
    分页SQL取下一页
    SORT ORDER BY STOPKEY
    压缩跟踪(CT)代码具体学习_模块1(样本的採集和扩充)
  • 原文地址:https://www.cnblogs.com/taiyangfeng/p/11885758.html
Copyright © 2011-2022 走看看