当前位置: 首页 > wzjs >正文

受欢迎的邢台做网站适合小学生摘抄的新闻2022年

受欢迎的邢台做网站,适合小学生摘抄的新闻2022年,网站系统制作,沈阳做网站最好的公司有哪些参考: C glog使用教程与代码演示 C第三方日志库Glog的安装与使用超详解 GLOG从入门到入门 glog 设置日志级别_glog C版本代码分析 文章目录 日志等级自定义消息创建使用宏定义 日志等级 在 glog 中,日志的严重性是通过 LogSeverity 来区分的&#xff0c…

参考:
C++ glog使用教程与代码演示
C++第三方日志库Glog的安装与使用超详解
GLOG从入门到入门
glog 设置日志级别_glog C++版本代码分析

文章目录

  • 日志等级
  • 自定义消息创建
    • 使用宏定义

日志等级

在 glog 中,日志的严重性是通过 LogSeverity 来区分的,glog 默认提供了 4 个等级:

  1. google::INFO (值为 0)
  2. google::WARNING (值为 1)
  3. google::ERROR (值为 2)
  4. google::FATAL (值为 3)

自定义消息创建

就20250121搜集到的资料来看glog目前不支持自定义等级消息等级,但是可以通过添加标识符,宏定义,重写glog中的send函数实现。

使用宏定义

可以定义一个宏来封装日志记录操作,同时在宏中添加特定的标签或前缀。
示例代码

#include <glog/logging.h>
#include <sstream>
#include <ctime> // For struct tm#include "frontend/universal/add_dialog.h"// 自定义日志接收器
class LogSink : public google::LogSink
{
public:LogSink(MessageBoxDialog *widget) : widget_(widget) {}void send(google::LogSeverity severity, const char *full_filename,const char *base_filename, int line,const struct ::tm *tm_time,const char *message, size_t message_len) override;private:MessageBoxDialog *widget_;
};void LogSink::send(google::LogSeverity severity, const char *full_filename, const char *base_filename, int line,const ::tm *tm_time, const char *message, size_t message_len)
{// 将日志内容包装为 std::stringstd::string logMessage(message, message_len);// 使用 stringstream 获取日志消息内容std::stringstream ss;// 构造日志输出格式ss << "[" << base_filename << ":" << line << "] ";ss << "[" << std::put_time(tm_time, "%Y-%m-%d %H:%M:%S") << "] ";// 根据 severity 判断日志类型if (severity == google::GLOG_INFO){ss << "[INFO] ";}else if (severity == google::GLOG_WARNING){ss << "[WARNING] ";}else if (severity == google::GLOG_ERROR){ss << "[ERROR] ";}else if (severity == google::GLOG_FATAL){ss << "[FATAL] ";}// 检查日志消息中是否包含特定标签if (logMessage.find("[COMMUNICATION]") != std::string::npos){ss << "[COMMUNICATION] ";}ss << logMessage;// 使用 Qt 的事件机制将日志更新请求发送到主线线QMetaObject::invokeMethod(widget_, "appendLog", Qt::QueuedConnection, Q_ARG(QString, QString::fromStdString(ss.str())));
}// 定义一个宏来封装日志记录操作
#define LOG_COMMUNICATION_INFO(msg) LOG(INFO) << "[COMMUNICATION] " << msgint main(int argc, char *argv[])
{QApplication app(argc, argv);MessageBoxDialog widget;widget.show();google::InitGoogleLogging(argv[0]);// 注册自定义日志接收器google::AddLogSink(new LogSink(&widget));// 使用自定义宏记录通信相关日志LOG_COMMUNICATION_INFO("This is a communication info message.");// 使用其他日志等级LOG(INFO) << "This is an info message.";LOG(WARNING) << "This is a warning message.";LOG(ERROR) << "This is an error message.";LOG(FATAL) << "This is a fatal message.";google::ShutdownGoogleLogging();return app.exec();
}

在这个示例中,我们定义了一个宏LOG_COMMUNICATION_INFO来封装日志记录操作,并在日志消息中添加了[COMMUNICATION]标签,从而实现对特定日志信息的区分。
总结
通过在日志消息中添加特定的标签或前缀,可以在不改变日志等级的情况下,实现对特定日志信息的区分。这种方法简单且有效,不需要修改glog库的源码,也不会引入新的日志等级值导致程序崩溃。

http://www.dtcms.com/wzjs/76583.html

相关文章:

  • 做一个卖车的网站该怎么做职业培训机构管理系统
  • 做模具的都有什么网站项目优化seo
  • 深圳公司网站开发上海关键词优化的技巧
  • 浙江建设银行网站免费二级域名分发网站源码
  • 可以做用户旅程图的网站网站生成app工具
  • 用网站做淘宝客的人多吗网站页面优化方案
  • 泾县网站建设网络营销公司如何建立
  • php mysql 企业网站源码商品标题关键词优化
  • 网站外链建设网页模板之家
  • 网站做优化有必要吗seo网站推广批发
  • 做网站优化公司报价公司网络推广服务
  • 永州做网站公司seo公司培训课程
  • 南通网站建设团队chatgpt 网站
  • 商场网站建设seo搜索优化 指数
  • 建设银官方网站重庆seo推广服务
  • 网站内链接怎么做软文是什么意思通俗点
  • 微软网站开发软件站长查询
  • wordpress 页面全屏江北seo页面优化公司
  • 一级域名 网站建设网络营销的特点主要包括什么
  • 做网络教育录播网站重庆seo排名技术
  • 网站建设的需求怎么写可靠的网站优化
  • 嘉兴网站建设模板网站百度风云榜各年度小说排行榜
  • 做一钓鱼网站吗站长之家ping检测
  • 学网站建设前途推广宣传文案
  • 网站子站点是什么意思网络营销有什么特点
  • 上海手机网站建设哪家专业b2b平台有哪些网站
  • 做网站常用的背景图像seo官网
  • 怎样切图做网站百度收录api怎么提交
  • ubuntu怎么安装wordpress软媒win7优化大师
  • 湛江网站制作计划2024新闻热点事件