2011-02-09 71 views
0

我試圖讓登錄跨使用logging.config.fileConfig()我的目錄幾個不同的模塊會記錄看起來是這樣的:Python模塊與Eclipse

> Package 
    > Source 
     __init__.py 
     SomeSource.py 
    > Test 
     __init__.py 
     SomeTests.py 
    __init__.py 

裏面Package.__init__.py我有以下幾點:

directory = 'C:/User/Me/workspace/Package/' 
logFile = 'logger.conf' 
logging.config.fileConfig(directory+logFile) 
log = logging.getLogger('Package') 
log.info('Logging initialized.') 

import Test 

裏面Package.Test.__init__.py

log = logging.getLogger('Package.Test') 
log.info('Test module started') 

因此,對於這個預期輸出是一樣的東西:

Logging initialized. 
Test Module started. 

我能得到這個運行,並同時使用eclipse用Ctrl + F11正常登錄。然而,在沒有任何解釋的結果都稱之爲:

>>> import Package 

日誌文件保持爲空。有任何想法嗎?

+0

如果您發佈的配置文件,這可能會有幫助。 – 2011-02-10 08:51:18

回答

0

默認情況下,交互式解釋器會話中記錄的詳細程度將爲WARNING,因此您的INFO消息不會顯示(Eclipse或插件可能會設置不同的詳細程度)。

將.info調用更改爲.warning調用 - 您應該看到一些輸出(具體取決於您在conf文件中設置的配置)。

另外,在交互式會話,請

logging.getLogger().setLevel(logging.DEBUG) 

import Package 
+0

不幸的是,這並沒有幫助。我已經在`fileConfig()`讀取的配置文件中將日誌記錄設置爲`DEBUG`。將日誌記錄級別設置爲「WARNING」或「CRITICAL」來處理日誌消息不起作用。使用`setLevel()`產生相同的結果。這很令人困惑,因爲我會想象Eclipse使用相同的機制來執行Python代碼。 – user610239 2011-02-09 22:57:12