2014-06-24 115 views
2

我想爲pytest-xdist產生的每個子進程/網關創建一個單獨的日誌文件。有沒有一種優雅的方式來查明pypro目前在哪個子進程/網關中?我配置我的根記錄與位於conftest.py會話範圍的燈具,這樣的事情:有沒有辦法找出pytest-xdist網關正在運行?

@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) 

這將是巨大的,如果我可以添加一個前綴基於網關號碼,例如日誌文件名:

​​

沒有這個,每個網關將使用相同的日誌,日誌將變得混亂。我知道我可以爲文件名添加時間戳。但是這並不能讓我快速區分哪個文件來自哪個網關。

回答

1

我發現,你可以訪問網關ID通過以下方式:

slaveinput = getattr(session.config, "slaveinput", None) 

if slaveinput: 
    gatewayid = slaveinput['slaveid'] 

當然,你需要在這裏您可以訪問session.config對象的地方。

相關問題