Log4qt使用记录备忘
Log4qt基于Qt4实现的第三方日志记录文件,存在很多版本,我直接在官网下载的09年的版本,
然后进行qt5适配。
官网源码:https://sourceforge.net/projects/log4qt/ 下载的文件是log4qt-0.3.zip,解压即可。
1.将log4qt的源码加到工程中,或者直接对log4qt进行编译,生成lib.dll文件,包含头文件进行动态库加载log4qt(使用的是前面的方法,后面方法主要是因为如果需要修改源码会比较麻烦,既然log4qt已经提供源码,就直接加入工程即可)
解压后发现源码包含pri文件,
如果不存在pri文件,采用下方法创建:
新建文件,修改后缀名为pri, pri文件里面包含log4qt的所有的头文件和源文件,
pro中添加include(.pri)。
如果存在,确定pri文件的位置,然后添加到自己需要添加的工程的pro文件中添加一行代码:(本例中的pri文件在log4qt/src/log4qt/log4qt.pri。故pro文件中添加
include($$PWD/log4qt/src/log4qt/log4qt.pri)
编译工程,会报错,基本都是Qt5和Qt4版本之间不兼容导致。
目前发现的几个有
1,QtMsgHandler报错,qInstallMsgHandle报错,导致回调函数参数不一致
Qt5中将QtMsgHandler修改为QtMessageHandler,同时也修改了回调函数的参数,
由void() (QtMsgType,const char* ) 修改为 void(*)(QtMsgType,const QMessageLogContext &,const QString);同步修改即可
2.常规的QTextCodec的变更
3.QObject报错,
添加#include即可
4.操作符<< overload歧义报错
将存储的类型直接修改即可,经过测试,由于出现报错的地方是枚举类型,改成int,qint32均会出现歧义,修改为QString即可,然后在进行转换成int,再转化为Level枚举类型。
如:QString l = QString::number();或者QString("%1).arg();
目前只发现这四处兼容Qt5版本需要修改的地方。
使用log4qt
1.配置Log4qt:
配置log4qt有两种方法,一种是配置文件,一种是调用api(可网上查找资料)。由于偷懒,直接采用配置文件调用,方法如下
Log4Qt::BasicConfigurator::configure();//类似于初始化资源,必须加,否则程序直接crashLog4Qt::PropertyConfigurator::configure(“cfg.conf”); //加载配置文件,是文本即可,后缀无所谓Log4Qt::Logger::logger("debug")->debug(msg);Log4Qt::Logger::logger("info")->info(msg);
其他类型的日志依此类推,Trace,Error等。
研究配置文件内容,其中的File,MaxFileSize等key,均为字面意义,
可参考源码查看具体逻辑
#显示所有类型到log.txt文件,
log4j.rootLogger=ALL,all
log4j.appender.all=org.apache.log4j.RollingFileAppender
log4j.appender.all.appendFile=true
log4j.appender.all.File=log/log.txt
log4j.appender.all.MaxFileSize=10MB
log4j.appender.all.MaxBackupIndex=5
log4j.appender.all.layout=org.apache.log4j.PatternLayout
log4j.appender.all.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.zzz}[%t][%p] %m%n#将debug类型到debug.txt文件
log4j.logger.debug=DEBUG,debug
log4j.appender.debug=org.apache.log4j.RollingFileAppender
log4j.appender.debug.appendFile=true
log4j.appender.debug.File=log/debug.txt
log4j.appender.debug.MaxFileSize=10MB
log4j.appender.debug.MaxBackupIndex=5
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.zzz}[%t][%p] %m%nlog4j.logger.info=INFO,info
log4j.appender.info=org.apache.log4j.RollingFileAppender
log4j.appender.info.appendFile=true
log4j.appender.info.File=log/info.txt
log4j.appender.info.MaxFileSize=10MB
log4j.appender.info.MaxBackupIndex=5
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.zzz}[%t][%p] %m%n
Log4qt使用记录备忘相关推荐
- EF 使用遇到过的错误记录备忘
1. is only supported for sorted input in LINQ to Entities The method :只支持排序输入实体LINQ 的方法 是使用skip()时没 ...
- 武汉三首,记录备忘,写的不好,以后再改
第一首: 拜望武昌英烈间 再登黄鹤谒先贤 隐水洞中寻幽境 泛舟东湖妙如仙 第二首悲凉: 追随圣迹到武昌 千年之后望长江 摩肩接踵登黄鹤 但见高楼列两厢 滚滚长江依旧逝 唯看神桥锁大江 纵使李杜今犹在 ...
- 线性判别分析(Linear Dicriminant Analysis)参数推导记录备忘
线性判别分析(LDA)投影降维的思想,以类内小.类间大(类似于软件工程中高内聚低耦合思想)的目标实现了对数据集进行分类的效果. LDA的原始思想非常简单,在数据集平面(假如二维数据)上,找到一条直线, ...
- com.android.backupconfirm,使用ADB停用一些自己讨厌的东西记录备忘
华为桌面:com.huawei.android.launcher 华为音乐:com.android.mediacenter package:com.android.providers.telephon ...
- datax安装记录备忘
1.下载datax 2.上传datax至数据库服务器 3.解压: tar -zxvf datax.tar.gz -C /home/soft/ 4.查看java,python 环境 Python –V ...
- Mac 常用记录备忘
1,中英文切换和选输入方法:COMAMND+SPACE或在右上角的菜单里选.在windows系统里不是ctrl+shift吗,在苹果系统切换键是苹果键+空格.2,可以到"系统设置" ...
- COleSafeArray::PutElement记录备忘
语法 void PutElement(long* rgIndices,void* pvData ); 参数 rgIndices 指向数组的每个维度的索引数组的指针. pvData 指向要分配给数组的数 ...
- 2023年春节放假时间安排计划用哪一提醒备忘软件记录?
春节的脚步一天天近了,今年春节是2023年1月22日,假日办通知的放假时间为2023年1月21日~2023年1月27日,共计7天.春节放假期间,很多人都是怀着一颗激动的心,期待着与家人团聚. 为合理利 ...
- windows时间同步软件_在Windows电脑桌面上记录每日工作备忘事项用哪个便签软件好?...
电脑是很多人日常工作.生活的小帮手,使用电脑可以查询资料.数据处理.编辑文字等,为了方便办公提醒,很多人会借助电脑桌面上记录备忘事项的工具:现在电脑上可以使用的记录备忘事项的软件是比较多的,究竟哪一款 ...
最新文章
- GPU 2012年10月 性能排名
- Nginx正则表达式之匹配操作符详解
- lr参数化取值与连接数据库
- 物理化学 多组成系统热力学
- OpenCV k均值聚类kmeans clustering的实例(附完整代码)
- C语言 条件编译(if )
- leetcode 756. Pyramid Transition Matrix | 756. 金字塔转换矩阵(BFS)
- gsensor 车辆碰撞算法_AEB安全模型(一)——基于碰撞时间的安全模型
- Perl面向对象编程
- ANDROID L——Material Design详解(UI控件)
- 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例...
- 二维vector初始化大小方法
- 明天全国哀悼日,小程序只需三行代码秒变黑白
- c语言中char的赋值
- 谁能谈谈国外软件行业的实际情况么?(全美“50大好差事” 软件工程师排名第一)...
- 计算Grassmannian geodesic
- 强化学习算法A2C(Advantage Actor-Critic)和A3C(Asynchronous Advantage Actor-Critic)算法详解以及A2C的Pytorch实现
- Android中PIN和PUK码解锁研究
- 剑指Offer-66:构建乘积数组
- 澤地萃 (易經大意 韓長庚)