簡體   English   中英

Python 記錄從 handleError 獲取對記錄器的引用

[英]Python logging get reference to logger from handleError

我正在編寫一個自定義 Python 日志記錄處理程序,只要出現日志記錄錯誤,它就會將系統置於錯誤 state 中。 為此,我在我的自定義處理程序中覆蓋了 handleError() 方法。

一旦系統出現錯誤 state,我需要監控記錄器並偶爾測試它是否已恢復。 為了做到這一點,我需要一個對在 handleError() 方法中有錯誤的實際記錄器的引用。

如何從其處理程序的 handleError() 方法訪問記錄器?

我正在嘗試做的示例:

class MyFileHandler(WatchedFileHandler):
    def handleError(self, record):
        logger_that_had_the_error = ???????????
        put_system_in_error_state(f"Logging failure ({record.msg})")
        start_monitoring_logger(logger_that_had_the_error)
        super().handleError(record)

我應該換什么????????? 和?

handleError時,記錄器中沒有錯誤,處理程序的emit()方法中有錯誤。 同一個處理程序可以附加到任意數量的記錄器,甚至可能不附加到最初接收日志的記錄器,而是附加到記錄層次結構中的任何祖先。

要獲取源自處理程序出錯的日志的記錄器的名稱,您可以訪問LogRecord object 的name屬性。 要獲取實際的記錄器 object,您可以使用該名稱。 因此,要將其填寫到您的代碼中:

def handleError(self, record):
    logger_that_had_the_error = record.name
    # or if you want the logger object:
    # logger_that_had_the_error = logging.getLogger(record.name)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM