在python中,如果在父進程中配置了日誌記錄器,那麼子進程是否也會獲得該日誌記錄器?更清楚的是,在我的應用程序中,我通過執行logger = logging.getlogger()
併爲其添加處理程序來爲父進程配置根記錄器。現在,當一個子進程分叉,它確實是記錄器是否可以通過父進程和子進程訪問?
logger = logging.getlogger()
logger.info("dfsdf")
然後根據父級的根記錄器處理所有日誌。我沒有爲孩子配置根記錄器。這怎麼可能?他們是兩個不同的過程,他們怎麼能有相同的記錄器?
感謝您澄清我的疑問。如果我願意,這是否使我能夠直接在子進程中使用父記錄器,而不是在分叉時將其作爲參數傳遞給父進程?這是一個正確的方法嗎? – alice
@alice:可能不是;我已經更新了我的答案。 –
您可以使用fork()的結果來執行post-fork操作來清理像這樣的情況(重定向日誌),或者通過使用log4j之類的API使用日誌記錄進程。 –