[英]Python: How to create and use a custom logger in python use logging module?
[英]Adding custom handler to Python logging module without a logger instance?
這是答案的后續問題, 如何從Python日志記錄模塊獲取非阻塞/實時行為? (輸出到PyQt QTextBrowser)由X.Jacobs提供。
在Python日志記錄模塊中,添加自定義處理程序的通常方法是定義一個從logging.Handler
繼承的處理程序類(我們將其稱為CustomLogHandler
)。 要將其附加到logging
過程中,通常需要執行以下操作:
import logging
class CustomLogHandler(logging.Handler):
... (some code here)...
logger = logging.getLogger()
logger.addHandler(CustomLogHandler)
其中addHandler
是logger
實例的方法。
問 :假設我們不希望得到一個logger
(即我們不想做以上)。 是否可以將CustomLogHandler
附加到logging
本身?
請參閱“ 如何從Python日志記錄模塊獲取非阻塞/實時行為”中的評論? (輸出到PyQt QTextBrowser)作為上下文。
前提是可以使用自定義處理程序,而無需引用logger
實例。
logging.getLogger()
返回根記錄器實例,該對象沒有進一步的“啟動”,並且沒有其他東西可以將處理程序附加到根之外。
諸如logging.error()
類的模塊級功能使用root logger。 引用文檔 :
logging.error(msg[, *args[, **kwargs]])
在根記錄器上記錄錯誤級別為ERROR的消息。 參數解釋為debug()。
換句話說, logging.error()
類的函數只需調用getLogger().error()
。
將CustomLogHandler
附加到根記錄器是將其添加到模塊的正確方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.