定义日志类
import logging
import os
import datetime
class UserLog():
def __init__(self):
self.logger = logging.getLogger()
self.logger.setLevel(logging.INFO)
# 该文件所在的文件夹路径
base_dir = os.path.dirname(os.path.abspath(__file__))
log_dir = os.path.join(base_dir,"logs")
# 以时间命名日志文件
log_file = datetime.datetime.now().strftime('%Y-%m-%d') + '.log'
log_name = log_dir + "/" + log_file
print(log_name)
# 文件输出日志
self.file_handle = logging.FileHandler(log_name, 'a', encoding='utf-8')
self.file_handle.setLevel(logging.INFO)
# 定义写入的日志中包含的信息及格式
formatter = logging.Formatter('%(asctime)s %(filename)s --> %(funcName)s %(levelno)s : %(levelname)s --> %(message)s')
self.file_handle.setFormatter(formatter)
self.logger.addHandler(self.file_handle)
def get_log(self):
return self.logger
def close_handle(self):
self.logger.removeHandler(self.file_handle)
self.file_handle.close()
if __name__ == "__main__":
uesr_log = UserLog()
log =uesr_log.get_log()
log.debug("first log")
uesr_log.close_handle()
定义完成后,在具体类中的使用
class FirstCase(unittest.TestCase):
# 在前置类方法中获取日志
@classmethod
def setUpClass(cls):
cls.log = UserLog()
cls.logger = cls.log.get_log()
# 在类后置方法中关闭log
@classmethod
def tearDownClass(cls):
cls.log.close_handle()
def test_emali(self):
pass