[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类来使用

相关推荐
同学小张5 小时前
【端侧AI 与 C++】1. llama.cpp源码编译与本地运行
开发语言·c++·aigc·llama·agi·ai-native
DanCheng-studio6 小时前
网安毕业设计简单的方向答疑
python·毕业设计·毕设
踢球的打工仔6 小时前
PHP面向对象(7)
android·开发语言·php
轻抚酸~6 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
独行soc8 小时前
2025年渗透测试面试题总结-264(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
汤姆yu8 小时前
基于python的外卖配送及数据分析系统
开发语言·python·外卖分析
Yue丶越8 小时前
【C语言】字符函数和字符串函数
c语言·开发语言·算法
如何原谅奋力过但无声9 小时前
TensorFlow 1.x常用函数总结(持续更新)
人工智能·python·tensorflow
翔云 OCR API9 小时前
人脸识别API开发者对接代码示例
开发语言·人工智能·python·计算机视觉·ocr
V***u4539 小时前
MS SQL Server partition by 函数实战二 编排考场人员
java·服务器·开发语言