深入理解 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 或更高,關閉低優先級日志輸出。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76237.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76237.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76237.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cline Memory Bank 結構化文檔持久化 AI 上下文詳解

&#x1f3ae; 什么是 Cline Memory Bank&#xff1f; Memory Bank 是一個結構化文檔系統&#xff0c;允許 Cline 在會話之間保持上下文。它能讓 Cline 從無狀態的助手轉變為持久記憶的開發伙伴&#xff0c;隨著時間推移有效地“記住”項目細節。 &#x1f5e1;? 關鍵優勢 上…

【JavaScript】面向對象與設計模式

個人主頁&#xff1a;Guiat 歸屬專欄&#xff1a;HTML CSS JavaScript 文章目錄 1. JavaScript 中的面向對象編程1.1 對象基礎1.2 構造函數1.3 原型和原型鏈1.4 ES6 類1.5 繼承1.6 封裝 2. 創建型設計模式2.1 工廠模式2.2 單例模式2.3 建造者模式2.4 原型模式 3. 結構型設計模式…

網絡安全防護技術

邊界安全防護——防火墻 控制&#xff1a;在網絡連接點上建立一個安全控制點&#xff0c;對進出數據進行限制隔離&#xff1a;將需要保護的網絡與不可信任網絡進行隔離&#xff0c;隱藏信息并進行安全防護記錄&#xff1a;對進出數據進行檢查&#xff0c;記錄相關信息 防火墻…

Spring MVC 視圖解析器(JSP、Thymeleaf、Freemarker、 JSON/HTML、Bean)詳解

Spring MVC 視圖解析器詳解 1. 視圖解析器概述 視圖解析器&#xff08;ViewResolver&#xff09;是 Spring MVC 的核心組件&#xff0c;負責將控制器返回的視圖名稱&#xff08;如 success&#xff09;轉換為具體的 View 對象&#xff08;如 Thymeleaf 模板或 JSP 文件&#x…

# 爬蟲技術的實現

手把手教你網絡爬蟲&#xff1a;從入門到實踐 一、網絡爬蟲簡介 網絡爬蟲&#xff08;Web Crawler&#xff09;是一種自動化獲取互聯網數據的程序&#xff0c;廣泛應用于搜索引擎、數據分析、市場調研等領域。通過模擬瀏覽器行為&#xff0c;爬蟲可以高效地從網頁中提取結構化…

【HarmonyOS 5】鴻蒙中@State的原理詳解

一、State在鴻蒙中是做什么的&#xff1f; State 是 HarmonyOS ArkTS 框架中用于管理組件狀態的核心裝飾器&#xff0c;其核心作用是實現數據驅動 UI 的響應式編程模式。通過將變量標記為 State&#xff0c;開發者可以確保當狀態值發生變化時&#xff0c;依賴該狀態的 UI 組件…

influxdb數據導出筆記

influx query ‘from(bucket: “byt-grid-data”) |> range(start: 2025-04-01T00:00:00Z, stop: 2025-04-02T23:59:59Z) |> filter(fn: > r[“_measurement”] “byt-gzsn-hsxn-sc-dcs”) |> filter(fn: > r[“_field”] “F_ACT_FZZ02_FB_O”) |> filt…

HTTP Content-Type:深入解析與應用

HTTP Content-Type:深入解析與應用 引言 在互聯網世界中,數據傳輸是至關重要的。而HTTP協議作為最常用的網絡協議之一,其在數據傳輸過程中扮演著關鍵角色。其中,HTTP Content-Type頭字段在數據傳輸中發揮著至關重要的作用。本文將深入解析HTTP Content-Type,并探討其在實…

使用SQL查詢ES數據

使用SQL查詢ES數據 32 進階&#xff1a;使用SQL查詢ES數據環境準備利用腳本導入測試數據 SQL學習基本查詢排序查詢過濾查詢范圍查詢分組查詢(group)分組過濾查詢(grouphaving)聚合函數統計limit查詢分頁查詢 32 進階&#xff1a;使用SQL查詢ES數據 環境準備 需要首先安裝ES8.…

禁止頁面滾動的方法-微信小程序

在微信小程序中&#xff0c;有幾種方法可以禁止頁面滾動&#xff1a; 一、通過頁面配置禁止滾動 在頁面的JSON配置文件中設置&#xff0c;此方法完全禁止頁面的滾動行為&#xff1a; {"disableScroll": true }二、通過 CSS 樣式禁止滾動 在頁面的WXSS文件中添加&…

用戶畫像(https://github.com/memodb-io/memobase)應用

1.下載項目的源代碼,我們要先啟動后端,用docker啟動 cd src/server cp .env.example .env cp ./api/config.yaml.example ./api/config.yaml 這里我的配置內容如下config.yaml(因為我是調用的符合openai格式的大模型,所以我沒改,如果要是別的大模型的話,需要自己再做兼容…

微信小程序生成某個具體頁面的二維碼

微信小程序&#xff0c;如果要生成某個具體頁面&#xff0c;而非首頁的二維碼&#xff0c;體驗和正式的生成方法如下&#xff1a; 1、體驗版二維碼&#xff1a; 管理---版本管理---修改頁面路徑&#xff0c;輸入具體頁面的路徑以及參數&#xff0c;生成的是二維碼 2、正式小程…

【今日三題】小樂樂改數字 (模擬) / 十字爆破 (預處理+模擬) / 比那名居的桃子 (滑窗 / 前綴和)

??個人主頁&#xff1a;小羊 ??所屬專欄&#xff1a;每日兩三題 很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~ 目錄 小樂樂改數字 (模擬)十字爆破 (預處理模擬&#xff09;比那名居的桃子 (滑窗 / 前綴和) 小樂樂改數字 (模擬) 小樂樂改數字…

四旋翼無人機手動模式

無人機的手動模式&#xff08;Manual Mode&#xff09;是指飛手完全通過遙控器手動控制無人機的飛行姿態、高度、方向和速度&#xff0c;?無需依賴自動穩定系統或輔助功能?&#xff08;如GPS定位、氣壓計定高、視覺避障等&#xff09;。這種模式賦予操作者最大的操控自由度&a…

C++高精度算法(加、減、乘)

首先聲明&#xff0c;沒有除法是因為我不會&#xff08;手動狗頭_doge&#xff09; 簡介 顧名思義&#xff0c;高精度算法是用來算一些超級大的數&#xff0c;比如長到 longlong 都存不下的那種&#xff0c;還有就是小數點后好多位&#xff0c;double都存不下的那種&#xff…

思科交換機配置

以下是交換機配置的詳細步驟指南&#xff0c;適用于Cisco交換機&#xff0c;其他品牌需調整命令&#xff1a; 1. 初始連接與基本配置 連接方式&#xff1a;使用Console線連接交換機&#xff0c;通過終端軟件&#xff08;如PuTTY&#xff09;登錄。波特率&#xff1a;9600&…

數據質量問題中,數據及時性怎么保證?如何有深度體系化回答!

數據治理&#xff0c;數據質量這快是中大廠&#xff0c;高階大數據開發面試必備技能&#xff0c;企業基于大數據底座去做數倉&#xff0c;那么首先需要保障的就是數據質量。 數據質量的重要性在現代企業中變得越發突出。以下是數據質量的幾個關鍵方面&#xff0c;說明其對企業…

【學習筆記】CPU 的“超線程”是什么?

1. 什么是超線程&#xff1f; 超線程&#xff08;Hyper-Threading&#xff09;是Intel的技術&#xff0c;讓一個物理CPU核心模擬出兩個邏輯核心。 效果&#xff1a;4核CPU在系統中顯示為8線程。 本質&#xff1a;通過復用空閑的硬件單元&#xff08;如ALU、FPU&#xff09;&a…

閉包的理解

一、閉包的概念 當通過調用外部函數返回的內部函數后&#xff0c;即使外部函數已經執行結束了&#xff0c;但是被內部函數引用的外部函數的變量依然會保存在內存中&#xff0c;我們把引用了其他函數作用域變量的函數和這些被引用變量的集合&#xff0c;稱為閉包&#xff08;Clo…

從小米汽車事故反思 LabVIEW 開發

近期&#xff0c;小米汽車的一起嚴重事故引發了社會各界的廣泛關注。這起事故不僅讓我們對智能汽車的安全性產生了深深的思考&#xff0c;也為 LabVIEW 開發領域帶來了諸多值得汲取的知識與領悟。 在智能汽車領域&#xff0c;尤其是涉及到智能駕駛輔助系統時&#xff0c;安全是…