Opticks源码分析——日志

Opticks 日志提供两种方式:一种是基于Windows操作系统日志,另一种是基于MessageLogMgr类实现的日志。下面分别讲解这两种日志的实现方式以及在Opticks中的用途

1.1  Windows操作系统日志

具体的实现类是SystemServicesImp,该类能够通过宏定义分别支持windows平台与linux平台,windows平台采用RegisterEventSource

、DeregisterEventSource、ReportEvent三个函数实现具体的功能

在linux下则采用openlog、closelog、syslog 。主要函数以及功能说明。

 

类名称

函数接口

功能

SystemServicesImp

 

WriteLogInfo

 

一般系统日志。可以用来记录应用用户操作、系统运行状态等。

WriteLogWarning

 

警告日志。

WriteLogError

 

错误日志。程序中的异常等。

 

SystemServicesImp采用单例设计模式设计。因此使用方便,例如系统中的任何地方都可以采用如下方式记录日志:

SystemServicesImp::instance()->WriteLogInfo(QString("%1Startup").arg(APP_NAME).toStdString());

如果需要查看日志文件需要右击>我的电脑>管理,打开计算机管理,在〉Windows日志>应用程序中找到>Opticks,双击如图查看详细信息

1.2 Opticks日志

该功能采用日志文件的方式将应用系统的状态输出到日志文件中,以备日后查看。日志文件可以多个,采用MessageLogMgr进行日志管理。

class MessageLogMgrImp : public MessageLogMgr, public SubjectImp。

MessageLogMgrImp类多继承类。兼有日志与相应事件的能力。

 

类名称

函数接口

功能

MessageLogMgrImp

static MessageLogMgrImp* instance()

单例模式,可以在程序中其他地方自由调用

static void destroy();

析构函数。

virtual void setPath(

const std::string& path);

 

设置日志记录的存储路径。当路径改变时,激发通知事件,所有注册事件将被通知

virtual MessageLog* createLog(

const std::string& logName);

 

建立日志文件,默认保存在上一次设置的路径上,名称为logName,并将所建立的日志名称按照索引保存在mLogMap中以备下次再次打开写入使用。如果logName

为空,则返回NULL。

 

virtual MessageLog* getLog(const std::string& logName) const;

 

打开已经建立的日志,如果没有通过mLogMap找到,则返回NULL

virtual MessageLog* getLog() const;

 

获取系统默认日志文件。默认名称为string SessionItemImp::generateUniqueId()函数通过string SessionItemImp::generateUniqueId()获取的一个UID值

virtual std::vector<MessageLog*> getLogs() const;

 

获取所有的MessageLog数据

void clear();

 

清楚所有MessageLog数据,并通知所有的注册事件。

virtual const std::string& getObjectType() const;

 

返回MessageLogMgrImp类名称

virtual bool isKindOf(const std::string& className) const;

 

如果className 为MessageLogMgrImp或者 MessageLogMgr则为真

 

bool attach(const std::string& signal, const Slot& slot)

 

添加信号的响应事件

bool detach(const std::string& signal, const Slot& slot)

 

移除信号的响应事件

void enableSignals(bool enabled)

 

信号使能

bool signalsEnabled() const

 

返回信号使能状态

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunnyhui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值