[英]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.