考慮使用python logger模塊的多線程python應用程序。我想爲每個線程進行日誌記錄,所以我在主模塊(創建線程)的記錄器名稱底部追加了一個唯一ID(不是線程ID)。每個線程都使用python登錄
mylogger = logging.getLogger(str(someInt) + __name__)
現在這個模塊使用多個模塊,這些模塊還支持記錄但記錄器初始化爲
mylogger = logging.getLogger(__name__)
由於被叫類沒有看到來電者的記錄,來電的日誌線程特定但根據它的路徑,被調用者的文件將進入一個全局文件。
我們可以做些什麼來避免改變每個其他模塊傳遞str(someInt)
並且不改變地使用它們,但仍然記錄到線程特定的文件。
請糾正我,如果我錯了任何地方。
感謝您的建議。這解決了問題的一部分,即跨模塊傳遞信息。但是,仍然需要更改底層模塊才能訪問線程局部變量,然後將其用作記錄器對象。 –
對不起,我沒有注意到「不變」的部分。你能指定,你可以更改哪部分代碼?或者給我們一些簡單的例子,清楚地說明哪一部分可以修改。 – Marek