Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 记录错误时的Loguru回调函数_Python_Logging_Callback_Notifications_Loguru - Fatal编程技术网

Python 记录错误时的Loguru回调函数

Python 记录错误时的Loguru回调函数,python,logging,callback,notifications,loguru,Python,Logging,Callback,Notifications,Loguru,我正在将一个桌面应用程序从Python的标准库日志迁移到Loguru,并希望在用户界面中有一个包含日志信息的文本框 有没有一种方法可以钩住Loguru错误级别日志记录,从而允许将日志消息发送到回调函数?这将允许我用最新的错误消息更新用户界面。比如说, from loguru import logger def error_callback(msg: str): # Do something with the error message pass logger.add_call

我正在将一个桌面应用程序从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"`
从loguru导入记录器
def错误_回调(消息:str):
#对错误消息进行处理
通过

add_callback(error_callback)#您不能只为错误添加一个回调,但可以为每个日志添加一个回调,并在其中检查是否有错误。这个想法与stdlib日志中适配器的想法相同,唯一的区别是loguru调用它

从loguru导入记录器
def错误_回调(记录):
如果记录['level'].name=='ERROR':
打印('记录错误')
#日志消息的可用形式为:record['message']
logger=logger.patch(错误\回调)
logger.error('error'))

谢谢,补丁是我一直在寻找的,它并没有跳出我和我第一次读到的文档@Danielvarrell指出,另一种可能是简单地添加
错误回调(msg:str)
作为带有
过滤器的接收器。这将作为任何
“错误”
消息的回调
logger.add(error\u回调,filter=lambda r:r[“level”]。name==“error”)