Qt下一行代码就可以使用的稳定易用的日志log类
Qt下一行代码就可以使用的稳定易用的日志类
此日志类是基于Qt 自带的 扩展的一个易用的日志类,
使用的是Qt自带的日志输出形式, 已长期运行在许多实际项目中,稳定可靠,而且跨平台,
在windows和linux 上都能稳定运行
百度云盘下载链接:https://pan.baidu.com/s/1PU1h4LrUmb5camSBON7Gxg
提取码:v17m
默认日志文件配置:
- 默认debug等级
- 每天重新生成一个文件,
- 文件超过40MB时重新生成一个文件,
- 文件数量最多10个,超过十个则保留时间最近的10个
文件名称:
- appName_2020_05_13_18_01_48.log
使用说明:
//日志等级enum DB_LOG_LEVEL{LOG_DEBUG = 1, //调试等级LOG_INFO, //正常等级LOG_WARNING, //只输出警告以上LOG_ERROR //只输出错误以上};
使用方法
在任意地方调用初始化,初始化之后才可输出日志到文件
DBLog::getInstance()->init(); //初始化
外部获取日志信息
//绑定日志输出的信号到界面窗口显示connect(DBLog::getInstance(), &DBLog::signalOutputLog, this, &MainWindow::sigLOG);
设置日志配置参数
DBLog::logConfig logConfig;logConfig.level = DBLog::DB_LOG_LEVEL::LOG_INFO;logConfig.createDays = 1; //日志文件创建频率、天logConfig.fileMaxCount = 20; //日志文件最多个数个、个logConfig.fileMaxSizeMB = 50; //日志文件最大大小、MBDBLog::getInstance()->setlogConfig(logConfig); //设置日志配置
获取日志等级
DBLog::getInstance()->getLogLevel();
手动同步日志缓存到日志文件中(正常使用无需调用,频繁调用会影响程序运行效率)
DBLog::getInstance()->flushLogToFile();
头文件概览
/** ******************************************************** @brief :公共的日志输出类* @author :zhongyl* @date :2019-06-13* @version :v1.0* @warning :* @note :使用标准的qt 日志输出方式,日志等级、文件大小、个数,自动创建文件时间等均可配置* 使用方法:* 1、初始化* DBLog::getInstance()->setlogConfig(logConfig); //如果需要自定义日志配置、可省略* DBLog::getInstance()->init(); //初始化* 2、日志输出示例:* qDebug()<<"hello world";* qInfo()<<"hello world";* qInfo("hello world");** 日志输出定级:* qDebug()<<调试日志, 用于打印调试信息,和一些数据的详细信息,正常不显示,* 对应解决问题增加的调试信息应该 在问题关闭之后取出* qInfo()<<日常消息, 程序运行正常下应该显示的一些状态信息,* qWaring()<<警告消息, 一些导致程序运行状态异常, 但是不影响程序主要功能继续的故障* qCritical()<<临界消息, 一些导致程序运行异常, 无法继续正常运行,主要功能瘫痪的故障* qFatal(“崩溃消息, 一些导致程序直接崩溃, 无法运行的的故障”)
******************************************************** **/
class DBLog : public QObject
{Q_OBJECT
public://日志等级enum DB_LOG_LEVEL{LOG_DEBUG = 1,LOG_INFO,LOG_WARNING,LOG_ERROR};struct logConfig{int level; //日志等级int createDays; //日志文件创建频率(天)int fileMaxSizeMB; //日志文件最大大小(Mb)int fileMaxCount; //日志文件最大个数logConfig() = default;};
public:static DBLog* getInstance();/*** @brief setlogConfig 设置日志参数* @param logInfo 日志参数*/void setlogConfig(logConfig logInfo);void init();int getLogLevel();void flushLogToFile();
signals:/*** @brief signalOutputLog 日志输出的信号* @param msg 日志内容*/void signalOutputLog(QtMsgType type, const QString &msg);}
相关文章:

apue读书笔记-第十二章
1 可重入,线程安全,异步信号安全之间的区别? 可重入:可以重复进入,不会引起问题(这个概念最宽) 线程安全:被多个线程使用时,不会出问题,也就是可以被多个进程…

取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...
统一资源定位符(缩写URL)是对Web资源(网页,图像,文件)的引用。URL指定资源位置和检索资源的机制(http,ftp,mailto)。例如,这是此博客文章的URL&am…

SQL Server 2008中的Pivot和UnPivot
SQL Server 2008中SQL应用系列--目录索引 今天给新成员讲解PIVOT 和 UNPIVOT示例,顺便整理了一下其用法。这是自SQL Server 2005起提供的新功能。 官方示例:http://msdn.microsoft.com/zh-cn/library/ms177410%28vsql.105%29.aspx 首先看PIVOT示例&#…

leetcode python 032 识别最长合法括号
# 给定一个只包含字符(和)的字符串,# 找到最长的有效(格式良好)括号子字符串的长度。# 对于“(()”,最长的有效括号子串是“()”,其长…

Android窗口管理服务WindowManagerService计算Activity窗口大小的过程分析
在Android系统中,Activity窗口的大小是由WindowManagerService服务来计算的。WindowManagerService服务会根据屏幕及其装饰区的大小来决定Activity窗口的大小。一个Activity窗口只有知道自己的大小之后,才能对它里面的UI元素进行测量、布局以及绘制。本文…

pcl需要注意的编译问题
pcl需要注意的编译问题 不要在头文件里 using namespace pcl 这会导致编译错误,而且根本分析不到错误在哪 不要在编译选项 里加 -marchnative 这个是让编译器根据你当前的cpu类型进行特定的编译优化, 例如 set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdc11 -march…

linux python版本_linux下更新Python版本并修改默认版本
linux下更新Python版本并修改默认版本,有需要的朋友可以参考下。很多情况下拿到的服务器python版本很低,需要自己动手更改默认python版本1、从官网下载python安装包(这个版本可以是任意版本3.3 2.7 2.6等等)wget http://python.org/ftp/python/2.7/Pytho…

基于HTML5的Google水下搜索
这次愚人节的时候,Google推出了水下搜索,当然,这只是一个愚人的小把戏,不过效果非常不错,进入页面后,第一眼是一个水面的效果,水下的鲨鱼在游来游去,然后Google logo和搜索框从水面上…

windows下rpc框架thrift的环境配置
windows下rpc框架thrift的环境配置 引用链接: https://www.cnblogs.com/49er/p/7193829.html 最近在弄windows下 的Facebook的rpc 框架 thrift , 网上东西看了很多, 但是大都不能一篇到位, 这里总结了一下, 也记一下自己遇到的问题和解决的方法 这里把我在实际过程中遇见的问…

CentOS 6.3 安装 samba 共享
PHP环境在linux下,但是开发的时候用的是windows,于是我用了samba将linux的一个目录共享,然后在windows上做映射,这样就可以直接在windows下编辑linux上的文件了 首先,安装samba软件,我采用的是yum安装&…

微信小程序 长按图片不出现菜单_微信更新,新功能上了热搜
微信在推出新功能方面相当克制,但每一次总能引起全网关注。昨天,微信又因为一个小功能的改进再次上了热搜,在安卓最新的 7.0.17 版本当中,微信取消了两分钟内删除功能。在新版微信中,发出的消息在两分钟内只有撤回功能…

windows下配置java环境jdk
Windows系统下搭建java的开发环境和配置环境变量 具体步骤打开链接地址:https://www.cnblogs.com/lijuntao/p/6694483.html转载于:https://www.cnblogs.com/ccw869476711/p/9401468.html

mysql 分区_搞懂MySQL分区
一.InnoDB逻辑存储结构首先要先介绍一下InnoDB逻辑存储结构和区的概念,它的所有数据都被逻辑地存放在表空间,表空间又由段,区,页组成。段段就是上图的segment区域,常见的段有数据段、索引段、回滚段等,在In…

apt Could not get lock /var/lib/dpkg/lock 解决方案
apt Could not get lock /var/lib/dpkg/lock 解决方案 删除锁定文件 sudo rm /var/lib/dpkg/lock

oracle创建DBLink连接
1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。tnsnames.ora文件在你安装oracle客户端安装文件里 如:(E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN) 创建远程连接: INT (DESCRIPTION (ADDRES…

理解oracle中连接和会话
理解oracle中连接和会话1. 概念不同:概念不同: 连接是指物理的网络连接。 在已建立的连接上,建立客户端与oracle的会话,以后客户端与oracle的交互都在一个会话环境中进行。 2. 关系是多对多: 一个连接上可以建立0个…

ActiveMQ消息存储持久化
转https://www.cnblogs.com/xinhuaxuan/p/6128380.html https://blog.csdn.net/lr131425/article/details/68064914 为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制。 就是在发送者将消息发送出去后&…

python 非_Python函数的非固定参数
一、概述在原来的文章中我已经写了,位置参数和关键字参数,下面我们来谈谈默认参数和参数组二、默认参数默认参数指的是,我们在传参之前,先给参数制定一个默认的值。当我们调用函数时,默认参数是非必须传递的。默认参数…

C#关于面对象多态例子
//主的喂狗 class Program { static void Main(string[] args) { //我们来模拟一个主人养狗动物的例子 首先创建一个主人对象,同时主人买了条狗 //买来条狗,主人一喂,狗会吃东西 Person person ne…

ubuntu package XXX needs to be reinstalled,but I can't find an archive 问题修复
ubuntu package XXX needs to be reinstalled, but I can’t find an archive 修复 原文连接: https://blog.csdn.net/tbitwqb/article/details/78241101 内容: 不知道什么原因,可能是升级过程过关机或者其他什么情况导致当前问题的发生。 无论是apt…

CentOS6.2解决passwd: Authentication token manipulation error报错
passwd: Authentication token manipulation error这种错误可能有多种原因,就我了解的可能有/etc/passwd等文件i权限 今天在给学员上课的时候发现提示passwd: Authentication token manipulation error错误,我来简单描述今天的问题 [roothost4 Scripts]#…

Java核心技术第五章——2.Object类
Object类:所有类的超类 Object类是Java中所有类的始祖,在Java中每个类都是由它扩展而来的。但是并不需要这样写: public class Emloyee extends Object 如果没有明确的指出超类,Object就被认为是这个类的超类。在Java中࿰…

21day学通python_铁乐学python_day21_面向对象编程3
抽象类和接口类以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/继承有两种用途:一:继承基类的方法,并且做出自己的改变或者扩展(代码重用)二:声明某个子类兼容于某基类,定义一个接口类Interface,接口…

系统crash无法启动 tpm error / could not read size 0x8000000e
系统crash无法启动 tpm error / couldn’t read size 0x8000000e 原文连接: https://unix.stackexchange.com/questions/305719/a-tpm-error-7-occurred-attempting-to-read-a-pcr-value-in-centos 内容: 问题: I’m getting this error while booting…

ASP.NET文件的下载
/// <summary>/// 下载文件/// </summary>/// <param name"filePath">文件的路径</param>/// <param name"fileName">文件名(有时候文件名存在数据库中用于替换路径中的文件名)</param>public void FileDownLoad(stri…

TestLink1.9.3测试用例:Excel转换XML工具一
最近在整理测试用例,所以想找一个合适的工具来完成对测试需求、测试用例的管理。对比了一翻,发现开源工具中扩展比较好的还属TestLink,而且还可以与JIRA进行对接,这样就引起了我更大的兴趣。加上之前本来就接触过此工具࿰…

MYSQL 使用自定义表变量
mysql 用户自定义表变量,ENGINEMyISAM DEFAULT CHARSETgb2312; 制定编码方式,防止乱码 DROP TABLE IF EXISTS p_temp; create temporary TABLE p_temp ( RowIndex int ,PRIMARY KEY (RowIndex))ENGINEMyISAM DEFAULT CHARSETgb2312; 转载于:https:/…

early EOF fatal: index-pack failed
early EOF fatal: index-pack failed 原文链接: https://stackoverflow.com/questions/21277806/fatal-early-eof-fatal-index-pack-failed 内容: First, turn off compression: git config --global core.compression 0 Next, let’s do a partial clone to truncate the a…

linux下运行python unitest_Python unittest打印日志可以在Linux上运行,但在Windows上不行...
我正在尝试编写一个unittest,它将stdout和stderr重定向到一个写在Windows网络驱动器上的文件。出于某些原因,相同的脚本(只有diff.是目录路径)可以在Linux上工作,但在Windows上不行。在Windows上运行时,不会将任何内容写入日志文件…

emacs 探索之五:latex配置
最近需要使用Latex写论文,之前一直在用emacs,而且渐渐理解emacs的思想之后发现大多数事情都能够在emacs中完成,那么自然会想到emacs是否能够与latex相结合。Google一下发现好多方式,当前前提是需要安装latex软件,然后e…