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

阿里云可以做几个网站做网站南昌

阿里云可以做几个网站,做网站南昌,无锡网站建设在哪里,科技助手和平精英参考: 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/a/542065.html

相关文章:

  • DM8 分区表学习笔记
  • 做网站有没有免费空间英文网站建设注意什么
  • 3.枚举算法(一)
  • 网站开发需求收集网站建设和维护工作内容
  • 建设银行昆山分行网站wordpress本站导航在哪里
  • 房地产网站建设策划书如何对网站进行维护
  • Lambert W 函数简要探讨
  • 为什么要避免使用 `SELECT *`?
  • 网站怎么做外链接中国建设银行e路护航网银安全组件
  • 网页设计网站名字做网站开发数据库怎么写
  • 创建es索引
  • Spring Boot项目中如何实现接口幂等
  • 深圳高端网站开发网上卖产品怎么推广
  • hexo框架做网站wordpress 变换模板
  • 国美在线网站建设淄博做网站推广
  • 网站提交网址网店美工实训报告总结2000字
  • 建设一个电子文学网站资金多少东莞建网站平台
  • 中山网站建设设计二级域名网站
  • 做营销型网站的公司建设工程规范发布网站
  • 网站策划是做什么的网站制作400哪家好
  • app网站开发培训自己的免费网站空间
  • 中国建设银行官方网站企业上海 政务网站建设情况
  • sqlmap注入
  • 自己的电脑怎么做网站装饰装修材料
  • Rust性能炼金术:如何用零成本抽象锻造系统级利器
  • 门户网站举例项目营销推广计划
  • EKF融合IMU的Cartographer SLAM建图
  • 当网络里混入“假网关”:用 Scapy 写一个 DHCP 欺骗检测器(附完整代码与讲解)
  • 网站开发设计费 怎么入账建设网站的知识
  • Windows:解决电脑开机解锁后黑屏但鼠标可见可移动的问题