QT项目作为客户端想加入log日志,自己写太麻烦,于是在网上找,先后尝试了各种库,因为只是一个日志,帮助排错不想搞得那么宏达和复杂,最后终于找到了一个靠谱、简单、好用!
和log4cplus和glog相比,
Easylogging++最大的特点就是它只有一个头文件
,
并且无需任何外部依赖
,
我从来没有见过哪一个日志库可以做到如此轻量而且还能兼顾性能的。除此之外,Easylogging++使用起来非常简单,同时还支持文件配置,提供了强大的自定义日志格式的能力,还提供对第三方库,STL容器的支持。面对如此炫酷的开源日志,怎么能不尝试下!
Easylogging++项目在GitHub的开源地址:
https://github.com/easylogging/easyloggingpp
1、最新的 Easylogging++ 版本是V9.96,如果编译器不支持
C++
11的话,是无法编译的,对于Visual Studio系列来说,必须是VS2012或以上版本才行。
2、如果还停留在VS2010、VS2008,VS2005的小伙伴,可以考虑使用
EasyLogging++ V8.91
版本。需要注意的是,不同的版本在使用方法和功能支持上都会有所差异。
每个版本官方都有各种版本demo帮助你理解,如图QT、VS等:
如图只需要将头文件加入,短短7行代码即可,编译成功,输出项目当前文件夹下的logs文件下,生成log文件!
注意:第4行代码,网上各种乱复制误导人,4行这个网上代码大多缺少开头的下划线,不然VS根本编译不过!
QT注意事项
加入到qt项目中报错括号问题135行,建议直接自己指定这个宏136和138选择一个放开,135-139其它都屏蔽,这个意思是你QT的版本。
136 QT5.0及以上 (这行放开了我的是5.7)
138 QT5.0以下包含4.X
如果项目是Unicode编码格式,那么输出中文log可能报错,推荐办法,在项目,属性,C++,预处理,预处理定义,加入宏
ELPP_UNICODE
最终,输出的log中文也无问题:
QT项目作为客户端想加入log日志,自己写太麻烦,于是在网上找,先后尝试了各种库,因为只是一个日志,帮助排错不想搞得那么宏达和复杂,最后终于找到了一个靠谱、简单、好用!和log4cplus和glog相比,Easylogging++最大的特点就是它只有一个头文件,并且无需任何外部依赖,我从来没有见过哪一个日志库可以做到如此轻量而且还能兼顾性能的。除此之外,Easylogging++使用起来非...
//
easy
logging
++
C
LOG
(INFO,"
LOG
") << "好的"; //utf-8: no
C
LOG
(INFO,"
LOG
") << QString("好的").toStdString().data(); //utf-8: no
C
LOG
(INFO,"
LOG
") << QString("好的").toLocal8Bit().data(); //utf-8: yes
C
LOG
(INFO,"
LOG
") << QString("好的").toU
Easy
logging
++ 默认是不支持
Qt
的数值类型,字符串,字符类型的输出,必须要手工开启才行。
Easy
logging
++.h 文件里面加入:
#define ELPP_
QT
_
LOGGING
1
使得ELPP_
QT
_
LOGGING
这个宏定义有效,这样下面的就会自动包含相关的
Qt
的
头文件
。这样就可以直接
使用
QT
内置的类型输出了。
C++
第三方
日志
库
G
log
的安装与
使用
超详解
C++
第三方
日志
库
G
log
基本语法介绍
中分别对G
log
的安装和
使用
进行了详细介绍,本文将不在进行介绍,本文
使用
的相关文件是第一篇文章中生成的三个文件夹,如下图所示。
二、项目基本配置
新建
一个
Qt
案例,项目名称为“G
log
Project”,选择MSVC 64bit kit编译器,基类选择“QWidget”,取消选
github的下载地址:https://github.com/victronenergy/Qs
Log
下载后,解压到非中文目录,用
qt
creator打开(
qt
5.8.0,windows平台上,亲测可用),如图:
(1)编译Qs
Log
SharedLibrary,在windows平台上,会生成Qs
Log
2.lib和Qs
Log
2.dll
(2)编译官方给的demo,
log
_example_s...
上篇文中说到windows下
使用
g
log
,不过我的实际需求是windows下在
Qt
中集成g
log
,实践下来发现区别还是很大的。这边记录下过程,防止更多人踩坑。
我的开发环境,
Qt
工具链
Qt
版本 5.13.0
MinGW版本7.3.0(x64-posix-seh-rev0) 内含GCC/
G++
64bit/7.3.0
MinGW环境
首先
需要
安装MinGW环境(其实
Qt
中内...
在
使用
Qt
和 OpenCV 显示相机画面时,可以在图像上添加
一个
标尺。具体步骤如下:
1. 在代码中包含
头文件
"opencv2/imgproc/imgproc.hpp" 和 "opencv2/highgui/highgui.hpp"
2. 读取相机图像,
使用
cv::imread()或者cv::VideoCapture
3. 在图像上绘制标尺,
使用
cv::line() 函数在图像上绘制线段,如下所示:
cv::line(img, cv::Point(10,10), cv::Point(100,10), cv::Scalar(0,0,255));
4. 显示图像,
使用
cv::imshow() 函数将图像显示在窗口中
5.
使用
cv::waitKey() 等待用户关闭窗口
如需更详细的操作,可以参考 OpenCV 官方文档