首页 > Qt下一行代码就可以使用的稳定易用的日志log类

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);}

更多相关:

  • ELK:(ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成),Elasticsearch用于存储日志信息,Logstash用于收集日志,Kibana用于图形化展示。上一节我们介绍了如何使用docker-compose搭建ELK日志分析系统。传送门:传说中的ELK日志分析系统,手把手教你...

  • 欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工目录前言常用日志组件什么是日志门面和日志实现常见的日志框架日志使用@slf4j注解日志的配置logback-spring配置总结前言日志是我们系统必备的功能之一,可以帮助我们开发人员定位系统的异常、错误以及运行流程的重要的工具。今天老顾就来介绍一下Spring boot的默认的l...

  • glog简介 glog是著名的google开源C++日志库glog(https://github.com/google/glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,可以自定义控制的内容比较少。  glog主要有以下几个特点:  1. glog有四种日志等级INFO < WARING...

  • 应用场景 该配置文件用于ATS用作反向代理模式,访问日志被server域名分隔。比如,我想将sohu和ifeng的域名的日志分别记在两个不同的日志文件中,其它的日志统一记在默认的日志文件中。 配置 为了将不同源站的HTTP transaction记录在不同的日志文件中,你必须在log_hosts.config中列举出每...

  • 缘起 近来因为公司项目需要,阅读了一部分ATS logging system的源码实现,越发觉得logs_xml.config文件的配置非常重要,而我目前只是实践了一点它的皮毛。为此,根据自己的理解,翻译了官网的这篇文档,以作备忘。 logs_xml.config文件定义了自定义日志文件格式,过滤器和处理选项。文件格式采用x...

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...

  • [Mar 31 02:39:34.185] Server {0x2b1d85563700} NOTE: Skipping the current log entry for access.log because its size (9136) exceeds the maximum p...

  • recycle_log_file_num 复用wal文件信息, 优化wal文件的空间分配,减少pagecache中文件元信息的更新开销。 为同事提供了一组rocksdb写优化参数之后有一个疑惑的现象被问到,发现之前的一些代码细节有遗忘情况,同时也发现了这个参数的一些小优化,这里做个总结。 在参数: opts.recycle_lo...

  • 今天的Log信息有的能打有的不能打,甚是奇怪,高了半天明白了,常见的几个问题就不说了,说我这个奇怪的。看下面的内容,那个能打印呢? 1 2 3 4 5 Log.v("交易返回码:log", " "); Log.v("re:log", ""); Log.e("交易返回码:log", ""); Log.e("re:log", "...