我對python日誌不是很熟悉,我試圖讓它將輸出記錄到控制檯。我已經得到它的工作,但似乎輸出在控制檯中看到兩次,我不知道爲什麼。我查看了其他有關類似情況的問題,但我找不到任何幫助我的東西。在幾個模塊輸出兩次Python的Python輸出兩次
我有三個模塊,可以稱他們爲馬,MB,MC和主要。主要導入這3個模塊並調用它們的功能。
在每個模塊中我設置像這樣的記錄程序:
ma.pyimport logging
logger = logging.getLogger('test.ma') #test.mb for mb.py/test.mc for mc.py
logger.setLevel(logging.DEBUG)
console_log = logging.StreamHandler()
console_log.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s')
console_log.setFormatter(formatter)
logger.addHandler(console_log)
...
...
#right before the end of each module, after I'm finished logging what I need.
logger.removeHandler(console_log)
mb.py
import logging
logger = logging.getLogger('test.mb')
logger.setLevel(logging.DEBUG)
console_log = logging.StreamHandler()
console_log.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s')
console_log.setFormatter(formatter)
logger.addHandler(console_log)
...
...
#end of file
logger.removeHandler(console_log)
mc.py
import logging
logger = logging.getLogger('test.mc')
logger.setLevel(logging.DEBUG)
console_log = logging.StreamHandler()
console_log.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(message)s')
console_log.setFormatter(formatter)
logger.addHandler(console_log)
...
...
#end of file
logger.removeHandler(console_log)
的我遇到的主要問題是輸出打印兩次並且對於程序的某些部分它沒有格式化。任何幫助將不勝感激,謝謝!
我有一個模塊,帶有幫助程序所有需要日誌記錄調用的3個模塊的功能。所以我將這個功能添加到該模塊(我添加了一些格式化程序/ setLevel更改,我也有上述)。現在在每個模塊中,我只是調用'logger = helper.get_logger('test')'。現在,當我運行我的程序時,根本沒有日誌顯示,只有打印語句 – bbakp3
您必須調用'logger.setLevel'將級別設置爲'logging.DEBUG'。否則,你只會看到錯誤信息。我已更新我的代碼,使其成爲一個完整的示例。 –
我在helper模塊的方法中添加了'logger.setLevel'函數,它現在可以工作了,謝謝! – bbakp3