记录错误时的 Loguru 回调函数

Loguru callback function when an error is logged

我正在将桌面应用程序从 Python 的标准库日志记录移动到 Loguru,并希望在用户界面中有一个包含日志记录信息的文本框。

有没有办法连接到 Loguru 错误级别的日志记录,从而允许将日志消息发送到回调函数?这将允许我使用最新的错误消息更新用户界面。例如,

from loguru import logger

def error_callback(msg: str):
    # Do something with the error message
    pass

logger.add_callback(error_callback) # <-- Does something like this exist?

# So when I do this...
logger.error("Oh noes")
# ... the callback is called with the argument `"Oh noes"`

您不能只为错误添加回调,但您可以为每个日志添加回调,并在其中检查是否有错误。这个想法与 Adapters 在 stdlib 日志中所做的一样,唯一的区别是 loguru 称之为 patch.

from loguru import logger

def error_callback(record):
    if record['level'].name == 'ERROR':
        print('logging an error')
        # the log message is available as: record['message']

logger = logger.patch(error_callback)

logger.error('error')