如何解决如何使日志记录处理程序记录到flask-socketio
我想通过将记录通过处理程序创建的记录通过Flask SocketIO套接字传递给网页(即,将在控制台上获得的相同日志消息打印到网页上)。
我看到有许多handlers可用,但是似乎没有一个适合这种情况。也许我需要一个自定义处理程序?
remap_pfn_range
更新:
据我所知,class MessagePaneHandler:
# some log data is received
socketio.emit("event_name",log_message_from_handler,namespace="/some_namespace",broadcast=True)
写入原始TCP套接字。我可以使用logging.handlers.SocketHandler
来写入Flask SocketIO套接字吗?如果可以,怎么办?
如果有帮助,这就是我在前端设置套接字的方式:
logging.handlers.SocketHandler
解决方法
据我所知,没有内置处理程序执行此操作。这个自定义处理程序帮了我大忙:
from flask_socketio import SocketIO
socketio = SocketIO()
class SocketIOHandler(logging.Handler):
"""A logging handler that emits records with SocketIO."""
def __init__(self):
super().__init__()
def emit(self,record):
asctime = record.__dict__["asctime"]
msecs = record.__dict__["msecs"]
levelname = record.__dict__["levelname"]
module = record.__dict__["module"]
message = record.__dict__["message"]
msg = f"{asctime}.{round(msecs):03} [{levelname:<5.5s}] {module:<18s} {message}"
socketio.emit("update_message_box",msg,namespace="/printing",broadcast=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。