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使用记录备忘相关推荐

  1. EF 使用遇到过的错误记录备忘

    1. is only supported for sorted input in LINQ to Entities  The method :只支持排序输入实体LINQ 的方法 是使用skip()时没 ...

  2. 武汉三首,记录备忘,写的不好,以后再改

    第一首: 拜望武昌英烈间 再登黄鹤谒先贤 隐水洞中寻幽境 泛舟东湖妙如仙 第二首悲凉: 追随圣迹到武昌 千年之后望长江 摩肩接踵登黄鹤 但见高楼列两厢 滚滚长江依旧逝 唯看神桥锁大江 纵使李杜今犹在 ...

  3. 线性判别分析(Linear Dicriminant Analysis)参数推导记录备忘

    线性判别分析(LDA)投影降维的思想,以类内小.类间大(类似于软件工程中高内聚低耦合思想)的目标实现了对数据集进行分类的效果. LDA的原始思想非常简单,在数据集平面(假如二维数据)上,找到一条直线, ...

  4. com.android.backupconfirm,使用ADB停用一些自己讨厌的东西记录备忘

    华为桌面:com.huawei.android.launcher 华为音乐:com.android.mediacenter package:com.android.providers.telephon ...

  5. datax安装记录备忘

    1.下载datax 2.上传datax至数据库服务器 3.解压: tar -zxvf datax.tar.gz -C  /home/soft/ 4.查看java,python 环境 Python –V ...

  6. Mac 常用记录备忘

    1,中英文切换和选输入方法:COMAMND+SPACE或在右上角的菜单里选.在windows系统里不是ctrl+shift吗,在苹果系统切换键是苹果键+空格.2,可以到"系统设置" ...

  7. COleSafeArray::PutElement记录备忘

    语法 void PutElement(long* rgIndices,void* pvData ); 参数 rgIndices 指向数组的每个维度的索引数组的指针. pvData 指向要分配给数组的数 ...

  8. 2023年春节放假时间安排计划用哪一提醒备忘软件记录?

    春节的脚步一天天近了,今年春节是2023年1月22日,假日办通知的放假时间为2023年1月21日~2023年1月27日,共计7天.春节放假期间,很多人都是怀着一颗激动的心,期待着与家人团聚. 为合理利 ...

  9. windows时间同步软件_在Windows电脑桌面上记录每日工作备忘事项用哪个便签软件好?...

    电脑是很多人日常工作.生活的小帮手,使用电脑可以查询资料.数据处理.编辑文字等,为了方便办公提醒,很多人会借助电脑桌面上记录备忘事项的工具:现在电脑上可以使用的记录备忘事项的软件是比较多的,究竟哪一款 ...

最新文章

  1. GPU 2012年10月 性能排名
  2. Nginx正则表达式之匹配操作符详解
  3. lr参数化取值与连接数据库
  4. 物理化学 多组成系统热力学
  5. OpenCV k均值聚类kmeans clustering的实例(附完整代码)
  6. C语言 条件编译(if )
  7. leetcode 756. Pyramid Transition Matrix | 756. 金字塔转换矩阵(BFS)
  8. gsensor 车辆碰撞算法_AEB安全模型(一)——基于碰撞时间的安全模型
  9. Perl面向对象编程
  10. ANDROID L——Material Design详解(UI控件)
  11. 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例...
  12. 二维vector初始化大小方法
  13. 明天全国哀悼日,小程序只需三行代码秒变黑白
  14. c语言中char的赋值
  15. 谁能谈谈国外软件行业的实际情况么?(全美“50大好差事” 软件工程师排名第一)...
  16. 计算Grassmannian geodesic
  17. 强化学习算法A2C(Advantage Actor-Critic)和A3C(Asynchronous Advantage Actor-Critic)算法详解以及A2C的Pytorch实现
  18. Android中PIN和PUK码解锁研究
  19. 剑指Offer-66:构建乘积数组
  20. 澤地萃 (易經大意 韓長庚)

热门文章

  1. windows下命令行方式激活venv虚拟环境
  2. 企业微信的「举足轻重」
  3. MYSQL 5.7 普通表在线转分区表
  4. 笔记合集 爬虫基础系列 临近结束 课件直接合一起 方便自己寻找 有空再整理
  5. 2013年—发展的一年
  6. 网络计算机组显示不全,win10系统网络邻居显示不全只能看到2台计算机的方案介绍...
  7. java中有地址吗_java web开发中各类地址的写法
  8. git更换新地址操作步骤
  9. 易中天语录。。。。。。
  10. 世界上所有的知名网络平台