定义日志类
import loggingimport osimport datetimeclass 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_fileprint(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.loggerdef 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):# 在前置类方法中获取日志@classmethoddef setUpClass(cls):cls.log = UserLog()cls.logger = cls.log.get_log()# 在类后置方法中关闭log@classmethoddef tearDownClass(cls):cls.log.close_handle()def test_emali(self):pass
