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

深入理解 GLOG_minloglevel 与 GLOG_v:原理与使用示例

文章目录

  • 深入理解 GLOG_minloglevel 与 GLOG_v:原理与使用示例
    • 1. GLOG_minloglevel:最低日志等级控制
    • 2. GLOG_v:控制 VLOG() 的详细输出等级
    • 3. GLOG_minloglevel 与 GLOG_v 的优先级关系
    • 4. 使用示例
      • 4.1 基础示例:不同日志等级
      • 4.2 VLOG 详细日志示例
    • 5. 小结

深入理解 GLOG_minloglevel 与 GLOG_v:原理与使用示例

在使用 Google 的 glog 日志库时,两个非常重要的参数是 GLOG_minloglevelGLOG_v。虽然它们看似类似,都与日志输出控制有关,但实际上作用范围和优先级是不同的。
本文将带你深入理解它们的区别、优先级以及如何正确使用,并给出实用示例。

1. GLOG_minloglevel:最低日志等级控制

GLOG_minloglevel 决定了日志的最低输出等级,低于这个等级的日志将不会被打印。

  • 可选值

    日志等级说明
    0INFO信息(默认值)
    1WARNING警告
    2ERROR错误
    3FATAL致命错误
  • 作用
    比如,当设置 GLOG_minloglevel=2 时,INFOWARNING 等级的日志将不会输出,只输出 ERRORFATAL 日志。

  • 示例

    ./your_program --minloglevel=1
    

    只输出 WARNINGERRORFATAL 日志。

2. GLOG_v:控制 VLOG() 的详细输出等级

GLOG_v 用于控制VLOG(n) 日志的输出详细程度。

  • 默认值0

  • 作用
    只有当 GLOG_v >= n 时,VLOG(n) 这条日志才会被输出。

    举例来说:

    • 设置 GLOG_v=1,则 VLOG(0)VLOG(1) 会输出,VLOG(2) 则不会。
    • 设置 GLOG_v=3,则 VLOG(0) ~ VLOG(3) 的日志都会输出。
  • 示例

    ./your_program --v=2
    

    会输出 VLOG(0)VLOG(1)VLOG(2)

3. GLOG_minloglevel 与 GLOG_v 的优先级关系

  • 先判断 GLOG_minloglevel
    如果当前日志级别低于 GLOG_minloglevel,直接丢弃,不管 GLOG_v 设置是多少。

  • 再判断 GLOG_v
    VLOG(n) 日志是 INFO 级别的日志,因此只有在 GLOG_minloglevel <= 0 时,VLOG(n) 才有可能输出。

  • 总结表格

    GLOG_minloglevelGLOG_v是否输出 VLOG(n) 日志
    0(默认)任意值可以输出(根据 v 等级)
    1任意值不输出(INFO 被屏蔽)
    2任意值不输出
    3任意值不输出

4. 使用示例

4.1 基础示例:不同日志等级

#include <glog/logging.h>

int main(int argc, char* argv[]) {
    google::InitGoogleLogging(argv[0]);

    LOG(INFO) << "普通信息日志";        // INFO 级别
    LOG(WARNING) << "警告信息";          // WARNING 级别
    LOG(ERROR) << "错误信息";            // ERROR 级别
    // LOG(FATAL) << "致命错误";        // 程序会在输出后终止

    return 0;
}

运行:

./your_program --minloglevel=1

输出

WARNING: 警告信息
ERROR: 错误信息

(INFO 被屏蔽)

4.2 VLOG 详细日志示例

#include <glog/logging.h>

int main(int argc, char* argv[]) {
    google::InitGoogleLogging(argv[0]);

    VLOG(0) << "VLOG 详细等级 0";
    VLOG(1) << "VLOG 详细等级 1";
    VLOG(2) << "VLOG 详细等级 2";

    return 0;
}

运行:

./your_program --minloglevel=0 --v=1

输出

VLOG 详细等级 0
VLOG 详细等级 1

VLOG(2) 不输出,因为 v=1

如果设置:

./your_program --minloglevel=1 --v=3

不会有任何 VLOG 输出,因为 minloglevel=1 已经屏蔽了 INFO 日志(包括 VLOG)。

5. 小结

  • GLOG_minloglevel 控制输出日志的最低级别
  • GLOG_v 控制 VLOG(n) 级别日志的详细程度
  • 优先级GLOG_minloglevel 优先于 GLOG_v
  • 开发调试时,建议设置 --minloglevel=0 --v=2 以获取较详细的调试信息。
  • 正式发布时,通常设置 --minloglevel=1 或更高,关闭低优先级日志输出。

相关文章:

  • FISCO BCOS技术架构解析:从多群组设计到性能优化实践
  • 致远OA —— 表单数据获取(前端)
  • 【中检在线-注册安全分析报告】
  • 深度学习的下一个突破:从图像识别到情境理解
  • PyTorch 深度学习实战(35):图生成模型与分子设计
  • 贪心算法 day08(加油站+单调递增的数字+坏了的计算机)
  • 电视剧角色扮演AI Agent中的大模型操作流程
  • 【Java设计模式】第4章 简单工厂讲解
  • Oracle DROP、TRUNCATE 和 DELETE 原理
  • SpringBoot实现随机生成10位数字和字母组合
  • Maven学习总结(61)—— Maven 依赖冲突检测及其解决方案
  • HTML5+CSS3小实例:纯CSS绘制七巧板
  • Deepseek解锁科研绘图新方式
  • MCU的USB接口作为 USB CDC串口输出
  • 猫咪如厕检测与分类识别系统系列【一】 功能需求分析及猫咪分类特征提取
  • 【browser-use+deepseek】实现简单的web-ui自动化
  • 城电科技 | 探索光伏景观廊道:适用于零碳园区/公园/景区/校园/乡村长廊建设
  • MySQL NULL 值处理
  • Linux服务器安装百度飞桨3.0(pip docker)
  • OpenCV 物体追踪
  • 保定百度网站建设/北京seo学校
  • 网站中宣传彩页怎么做的/百度软件中心下载
  • 政务网站集约化建设推进情况/百度seo如何优化关键词
  • 京东网站推广方式/专业的郑州网站推广
  • 网站设计专业实验室建设/软文写作什么意思
  • 制作个人网站怎么制作/百度视频免费下载