我想为 pytest-xdist 生成的每个子进程/网关创建一个单独的日志文件。有没有一种优雅的方法可以找出 pytest 当前所在的子进程/网关?我正在使用位于中的会话范围固定装置配置我的根记录器conftest.py
,如下所示:
@pytest.fixture(scope='session', autouse=True)
def setup_logging():
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
fh = logging.FileHandler('xdist.log')
fh.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
如果我可以根据网关编号为日志文件名添加前缀,那就太好了,例如:
fh = logging.FileHandler('xdist_gateway_%s.log' % gateway_number)
如果没有这个,每个网关都将使用相同的日志,并且日志会变得混乱。我知道我可以在文件名中添加时间戳。但这并不能让我快速区分哪个文件来自哪个网关。