[Pytest] [Part 2]增加 log功能

开始实现需求之前先做个log类,可以给其他模块使用,也方便以后修改log类的功能和属性。

使用的是python中的logging包来进行简单的封装,具体代码如下

python 复制代码
import logging
import sys


class TefLogger:

    def __init__(self, logger_name='TEST_FRAMEWORK'):
        self.logger = logging.getLogger(logger_name)
        self.logger.propagate = False
        self.set_level(logging.DEBUG)
        self.formatter = logging.Formatter('%(asctime)s - %(module)s - %(lineno)s - %(levelname)s - %(message)s',
                                           datefmt='%m/%d/%Y %I:%M:%S %p')

    def set_level(self, level=logging.DEBUG):
        self.logger.setLevel(level)

    def add_stream_handler(self, level=logging.INFO):
        self.stdout_log_handler = logging.StreamHandler(sys.stdout)
        self.stdout_log_handler.setLevel(level)
        self.stdout_log_handler.setFormatter(self.formatter)
        self.logger.addHandler(self.stdout_log_handler)
        return self.stdout_log_handler

    def add_file_handler(self, log_file_name, level=logging.INFO):
        file_log_handler = logging.FileHandler(log_file_name, 'w', 'utf-8')
        file_log_handler.setFormatter(self.formatter)
        file_log_handler.setLevel(level)
        self.logger.addHandler(file_log_handler)
        return file_log_handler

    def get_logger(self):
        return self.logger

    def remove_handler(self, log_handler):
        self.logger.removeHandler(log_handler)

#USAGE EXAMPLE 

'''
teflog = TefLogger()
teflog.add_stream_handler(logging.DEBUG)
teflog.add_file_handler('test_info.txt', logging.INFO)
teflog.add_file_handler('test_debug.txt', logging.DEBUG)
logger = teflog.get_logger()

logger.info("test_info")
logger.debug("test_debug")
'''

这样的话以后在新建类的__init__中可以实例化logger类来使用

相关推荐
Larry_Yanan16 小时前
Qt多进程(九)命名管道FIFO
开发语言·c++·qt·学习·ui
聆风吟º16 小时前
【C++藏宝阁】C++入门:命名空间(namespace)详解
开发语言·c++·namespace·命名空间
潇潇云起16 小时前
mapdb
java·开发语言·数据结构·db
prettyxian16 小时前
【QT】信号与槽基础:手动连接的原理与实践
开发语言·qt
傻乐u兔16 小时前
C语言初阶————结构体
c语言·开发语言
weixin_4450547216 小时前
力扣热题52
开发语言·python
mengyoufengyu16 小时前
JupyterLab4.5安装使用
python·jupyter·jupyterlab
weixin_4624462316 小时前
Python 使用阿里云 STS 获取临时访问凭证并上传文件至 OSS:Flask API 实现
python·阿里云·flask
逑之16 小时前
C语言笔记2:C语言数据类型和变量
c语言·开发语言·笔记
何中应16 小时前
@Autowrited和@Resource注解的区别及使用场景
java·开发语言·spring boot·后端·spring