2011-10-11 9 views
1

編輯的空白被一個不起眼的聲明中添加代碼,深某處的一個子功能。一旦這個被刪除,日誌記錄輸出很好......因此我關閉了這個主題。記錄模塊增加了前導空格在控制檯輸出

控制檯日誌記錄到stderr重定向允許容易凸顯這一點,所以拜提意見!


我使用Python logging模塊來處理從我的項目記錄,既日誌文件和標準輸出。這基於一個配置文件,具有不同的日誌記錄級別,相當不錯。

問題:標準輸出,線開始空格。這似乎與兩篇文章之間的時間相關(類似於每秒一個空間)。

可以肯定的,我做的記錄配置文件錯誤,因爲我真的不放心吧,但我不能確定在哪裏。將所有日誌級別更改爲相同設置不會改變任何內容。有人可以幫忙嗎?


報告文件內容:

2011-10-11 17:25:43,911 : INFO : P-Tool : P-Tool launched from command-line 
2011-10-11 17:25:43,927 : INFO : P-Tool : Starting instantiation of tools 
2011-10-11 17:25:43,959 : INFO : P-Tool : Initialization completed 
2011-10-11 17:25:43,959 : INFO : P-Tool : Execution started 
2011-10-11 17:25:44,973 : WARNING : P-Tool : Process Project File CRC check FAILED, [...] 
2011-10-11 17:25:44,973 : INFO : P-Tool : XSD version check passed: Process [...] 
2011-10-11 17:25:44,973 : ERROR : P-Tool : XSD validation FAILED for Process[...] 
2011-10-11 17:25:44,973 : INFO : P-Tool : Process Call found, ID: 1, short name: [...] 
2011-10-11 17:25:44,973 : INFO : lib.tools.I-Tool : importing AC_ICD: [...] 
2011-10-11 17:25:52,983 : INFO : lib.tools.I-Tool : importing AC_ICD: [...] 
2011-10-11 17:26:00,009 : INFO : lib.tools.V-Tool : verifying project [...] 

標準輸出:

INFO : P-Tool : P-Tool launched from command-line 
INFO : P-Tool : Starting instantiation of tools 
INFO : P-Tool : Initialization completed 
INFO : P-Tool : Execution started 
WARNING : P-Tool : Process Project File CRC check FAILED, [...] 
INFO : P-Tool : XSD version check passed: Process Project [...] 
ERROR : P-Tool : XSD validation FAILED for Process Project [...] 
INFO : P-Tool : Process Call found, ID: 1, short [...] 
INFO : lib.tools.I-Tool : importing AC_ICD: [...] 
    INFO : lib.tools.I-Tool : importing AC_ICD: [...] 
    INFO : lib.tools.V-Tool : verifying project [...] 
ERROR : P-Tool : no CRC found in "Project\Rep[...] 
INFO : lib.tools.G-Tool : generating binary for [...] 
ERROR : P-Tool : no CRC found in "Project\Reports[...] 
INFO : lib.tools.LAF Writer : LAF writing started, [...] 

(注意如何行開始空格)

這是我如何配置logging模塊:

# in the module p_tool.py 
# defining the logging 
LOG_CONFIG = 'logging.conf' 
logging.config.fileConfig(os.path.join(os.path.split(__file__)[0], 
             'resources', 
             LOG_CONFIG)) 
logger = logging.getLogger('P-Tool') 

[...] 
# adding some message 
logger.info('message to logger') 

和日誌記錄配置文件:

# logging.conf 
[loggers] 
keys=root,P-Tool 

[handlers] 
keys=consoleHandler,logFileHandler 

[formatters] 
keys=consoleFormatter,fileFormatter 

[logger_root] 
level=DEBUG 
handlers=consoleHandler,logFileHandler 

[logger_P-Tool] 
level=DEBUG 
handlers=consoleHandler,logFileHandler 
qualname=P-Tool 
propagate=0 

[handler_consoleHandler] 
class=StreamHandler 
level=INFO 
formatter=consoleFormatter 
args=(sys.stdout,) 

[handler_logFileHandler] 
class=FileHandler 
level=DEBUG 
formatter=fileFormatter 
args=('p_tool_log.txt','w') 

[formatter_fileFormatter] 
format=%(asctime)s : %(levelname)s : %(name)s : %(message)s 
datefmt= 

[formatter_consoleFormatter] 
format=%(levelname)s : %(name)s : %(message)s 
datefmt= 
+0

你確定在你的程序中沒有其他的「打印」嗎?如果它與日誌模塊同時打印到STDOUT,它們將混合在一起。 – Chriszuma

+0

爲什麼當您不使用格式時,爲控制檯格式化程序指定日期格式? – Velociraptors

+1

嘗試更改爲'sys.stderr' - 您是否看到控制檯輸出中的任何更改?如果是這樣,Chriszuma可能是正確的關於您的程序中的其他東西寫入sys.stdout –

回答

1

正如上面寫的,我在我的代碼犯了兩個錯誤。因此,logging模塊或由其構成的配置沒有任何問題。

的空白是通過在代碼一個不起眼的聲明說,深某處的一個子功能。一旦這個被刪除,日誌記錄輸出很好......因此我關閉了這個主題。

控制檯日誌記錄到stderr重定向允許容易凸顯這一點,所以拜提意見!