我檢查logging.Logger.manager.loggerDict做:什麼是celery.utils.log.ProcessAwareLoggerobject做在logging.Logger.manager.loggerDict
import logging
logging.Logger.manager.loggerDict
和字典如下:
{
'nose.case': <celery.utils.log.ProcessAwareLoggerobjectat0x112c8dcd0>,
'apps.friends': <logging.PlaceHolderobjectat0x1147720d0>,
'oauthlib.oauth2.rfc6749.grant_types.client_credentials': <celery.utils.log.ProcessAwareLoggerobjectat0x115c48710>,
'apps.adapter.views': <celery.utils.log.ProcessAwareLoggerobjectat0x116a847d0>,
'apps.accounts.views': <celery.utils.log.ProcessAwareLoggerobjectat0x116976990>,
}
There are more but I truncated it
我的問題是:
- 爲什麼芹菜參與各種其他非芹菜應用程序的日誌記錄?是否因爲日誌記錄是以異步方式完成的,並且以某種方式記錄框架檢測到芹菜的存在並使用它?
- 對於我自己的兩個使用
logger = logging.getLogger(__name__)
進行日誌記錄的文件,我看到一個是PlaceHolderObject,另外兩個是celery.utils.log.ProcessAwareLogger對象 - 儘管後兩個文件在視圖中調用,而不是在芹菜進程中調用。它是怎麼變成這個樣子,然後
感謝
我很長時間一直對ProcessAwareLogger感到困惑,感謝您的解釋。 – dalang