我正在使用日誌記錄(導入日誌記錄)來記錄消息。我在日誌記錄的調試級別(my_logger.debug('msg'));使用過濾器進行日誌記錄
其中一些調試消息來自function_a()和其他來自function_b(); 我希望能夠啓用/禁用日誌記錄基於它們是來自a還是來自b;
我猜我必須使用Logging的過濾機制。
有人可以告訴我如何下面的代碼將需要儀器儀表來做我想要的?謝謝。
import logging
logger= logging.getLogger("module_name")
def function_a(...):
logger.debug("a message")
def function_b(...):
logger.debug("another message")
if __name__ == "__main__":
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
#don't want function_a()'s noise -> ....
#somehow filter-out function_a's logging
function_a()
#don't want function_b()'s noise -> ....
#somehow filter-out function_b's logging
function_b()
如果我把這個簡單的例子擴展到每個模塊更多的模塊和更多的funcs,我會關心很多記錄器;
我可以把它保持在每個模塊1個記錄器嗎?請注意,日誌消息是「結構化的」,即如果記錄它的函數正在執行一些解析工作,它們都包含一個前綴logger.debug(「parsing:xxx」) - 我可以以某種方式用一行關閉 - 關閉所有「解析」消息(無論發送消息的模塊/功能如何)?
我必須將過濾器添加到處理程序。 – 2012-09-12 03:46:02