2016-10-10 53 views
1

我遇到了一個模塊(特別是maya中的pymel.core),它似乎改變了默認的日誌級別。當我導入pymel時,我使用的模塊中的所有不同的記錄器突然被設置爲調試並開始噴出大量我不想看到的東西。在我看來,pymel正在改變日誌記錄模塊中的默認日誌級別,但我不太確定它在哪裏。我查看了日誌記錄文檔,但我不確定如何將其設置回原來的狀態,我只能看到如何設置單個日誌記錄器的級別。在python中設置默認日誌級別

任何人都可以建議如何切換默認日誌記錄級別?

>>> import logging 
>>> logging.getLogger().getEffectiveLevel() 
30 
>>> import pymel.core 
>>> logging.getLogger().getEffectiveLevel() 
0 

我希望能夠設置默認水平回到30不知何故,所以我所有的記錄器都回到他們是如何時,他們繼承了日誌模塊的默認有前水平。如果我誤解了日誌記錄模塊的工作原理,我很抱歉,我對它很陌生。

+0

'logging.getLogger().setLevel(logging.WARNING)'?無論如何,看起來這個軟件包在他們的日誌配置上做錯了什麼。 – Bakuriu

+0

您可以在通過'logging.getLogger()。level = logging.WARNING'導入pymel後重置記錄器級別。請注意,有一個打開的[拉取請求](https://github.com/LumaPictures/pymel/pull/377)修復程序,您可能希望要求將其合併。 – MisterMiyagi

回答

1

我不知道pymel具體,但它看起來不像記錄方面表現良好。您可以嘗試:

if __name__ == '__main__': 
    import logging, pymel.core 
    logging.getLogger().setLevel(logging.WARNING) # or whatever 
    logging.getLogger('pymel').setLevel(logging.WARNING) 

但是,這可能無法防止輸出所有不需要的消息。您可以調整以上內容以適應您在練習中找到的內容。

0

site-packages目錄的pymel子文件夾中的Maya安裝中有一個名爲pymel.conf的文件。它使用默認日誌記錄模塊中的相同配置文件系統來控制pymel不同部分的日誌設置。