【发布时间】:2021-11-27 10:08:00
【问题描述】:
我有一个自定义记录器。它在 Logs 文件夹中创建一个文件。 这是代码的一部分
curr_time = time.strftime("%Y-%m-%d")
log_file_name = '../Logs/log' + curr_time + '.log'
我有一个 Tests 文件夹,我在其中创建测试用例,并在这些测试用例中使用日志记录。 Tests 文件夹中的测试一切正常
当我在 Tests 下的子文件夹中创建测试时出现问题
FileNotFoundError: [Errno 2] 没有这样的文件或目录:
这是我的文件夹层次结构
硒
POM
配置
日志
页面
测试
实用程序
我认为这是因为文件夹路径,因为当我将“../Logs/log”更改为“../../Logs/log”时,代码开始用于子文件夹测试并抛出错误消息主 Tests 文件夹中的测试
这是自定义记录器文件
import inspect
import logging
import logging.config
import time
def custom_logger(log_level=logging.DEBUG):
logger_name = inspect.stack()[1][3]
logger = logging.getLogger(logger_name)
logger.setLevel(logging.DEBUG)
curr_time = time.strftime("%Y-%m-%d")
log_file_name = '../Logs/log' + curr_time + '.log'
file_handler = logging.FileHandler(log_file_name.format(logger_name), mode='a')
file_handler.setLevel(log_level)
formatter = logging.Formatter('%(asctime)s - %(filename)s:[%(lineno)s] - %(name)s - %(levelname)s: %(message)s',
datefmt='%m/%d/%Y %I:%M:%S %p')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
【问题讨论】:
-
如果您希望日志相对于 code 位置,为什么不使用
__file__来构建路径? -
谢谢@2e0byo,经过一番努力,我找到了解决问题的部分方法。有兴趣请看我的回答。
标签: python python-3.x selenium path pytest