我相信這是使用Python的內置日誌記錄模塊將主模塊中的logger
作爲根記錄器的標準做法。假設這是正確的,在我看來,對於任何可能或不可能作爲主體運行的模塊,我都需要明確檢查。其原因是,如果我跟着叫logging.getLogger(__name__)
的標準做法,我會得到一個名爲記錄__main__
而不是根記錄:在Python中調用getLogger之前,是否需要顯式檢查__name__ ==「__main__」?
import logging
print logging.getLogger().name # root
print logging.getLogger(__name__).name # __main__
是最好的做法總是檢查?
if __name__ == "__main__":
logger = logging.getLogger()
else:
logger = logging.getLogger(__name__)
這不是那麼糟糕,因爲我會永遠有隻運行如果(通常包括logging.basicConfig
通話)等代碼,但它會是不錯的只需要一條線,而不是更多。
Python有一個三元組,你知道。所以,你可以這樣做:'記錄= logging.getLogger(!*([__ name__如果__name__ = '__main__' 別的[]))' –