Logger 类详解:全局日志管理器的设计与实现
类定义与功能概述
Logger 类是一个基于 Qt 信号槽机制的全局日志管理组件,主要功能是统一收集各模块的日志消息并通过信号发送,实现日志的集中管理和显示。
class Logger(QObject):
"""全局日志管理器,通过信号传递日志消息"""
log_message = pyqtSignal(str) # 定义日志消息信号,携带字符串参数
def log(self, message):
"""发送日志消息到信号"""
self.log_message.emit(message)
核心组成部分分析
-
信号定义:
log_message = pyqtSignal(str)- 这是一个自定义的 Qt 信号,用于传递日志消息字符串
- 信号是 Qt 框架中对象间通信的核心机制,支持跨线程安全通信
- 当信号被触发(
emit)时,所有连接到该信号的槽函数会被调用
-
日志发送方法:
def log(self, message): self.log_message.emit(message)log方法是外部调用的接口,接收日志消息- 通过
emit触发信号,将日志消息传递给所有连接的槽函数 - 该设计实现了"发送日志"与"显示日志"的解耦,符合开闭原则
在项目中的应用场景
-
主窗口中的初始化:
class MainWindow(QMainWindow): def __init__(self): # 初始化全局日志管理器 self.logger = Logger() # 连接信号到界面显示槽函数 self.logger.log_message.connect(self.log_to_ui)- 在主窗口中创建
Logger
- 在主窗口中创建

最低0.47元/天 解锁文章
535

被折叠的 条评论
为什么被折叠?



