FreeOZ论坛

标题: log in qt [打印本页]

作者: GPS    时间: 19-11-2010 10:11
标题: log in qt
问一下,在Qt里log怎么做? 用syslog吗? 有个qlog,似乎是embeded linux的。桌面下,linux/windows 各用什么呢?
作者: coredump    时间: 19-11-2010 10:25
qDebug(), qWarn() 。。这类函数可以被自定义扩展msg的记录方式,see: http://doc.qt.nokia.com/latest/qtglobal.html#qInstallMsgHandler
一个例子:http://www.thisisqt.com/forum/viewthread.php?tid=90
另一个例子:http://ed32.blogspot.com/2010/10/qtdebugview.html

第三方的可以看看log4qt  http://sourceforge.net/projects/log4qt/
或者就用log4cpp/log4cxx之类的也是一样
作者: GPS    时间: 19-11-2010 12:20
我用了qInstallMsgHandler. 看来这就够了。
用别的比如log4qt或者log4cpp,syslog有什么另外的好处吗?
作者: coredump    时间: 19-11-2010 12:36
原帖由 GPS 于 19-11-2010 11:20 发表
我用了qInstallMsgHandler. 看来这就够了。
用别的比如log4qt或者log4cpp,syslog有什么另外的好处吗?

坏处: 多引入了个一个库依赖,风格不一致,要末混用qDebug(), qWarn()... 要么整个改掉,变成一种风格
好处:log4cpp, syslog毕竟是专门为log记录设计的,在性能,功能等方面考虑的较多,扩展也很方便,如果需要这些功能就用

qInstallMsgHandler的作用就是可以让你还是用qDebug(), qWarn()...但是后端可以变成其它任何你想要的log记录和过滤方式,比如通过UDP方式发送到log server。

接合起来,比如可以打到这种效果, 如果想要更强大的效果,还可以考虑syslog ng (http://www.balabit.com/network-security/syslog-ng/):
qDebug()/qWarn()  => qInstallMsgHandler(..) => log4cpp   => syslog

[ 本帖最后由 coredump 于 19-11-2010 11:45 编辑 ]




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/ibbs/) Powered by Discuz! X3.2