glog安裝(轉載)

來源:互聯網
上載者:User

標籤:

foreveryl

 

glog 入門簡介

Glog的簡單入門,glog雖然在配置參數方面比較麻煩,但是在小規模程式中,由於其簡單靈活,也許會有優勢。

 

0,  glog 是google的開源日誌系統,相比較log4系列的日誌系統,它更加輕巧靈活,而且功能也比較完善。 結合之前看的一些資料, 這裡簡單對其做個簡介。

 

1, 安裝:

最新版本:0.3.1  http://code.google.com/p/google-glog/

安裝只需:./configure; make; make install

 

2, 簡單樣本

main.cpp:

#include <iostream>

#include "glog/logging.h"   // glog 標頭檔

using namespace std;

int main(int argc, char** argv) {

  google::InitGoogleLogging(argv[0]);    // 初始化

  // FLAGS_log_dir=".";   

  LOG(INFO) << "hello glog";     // 列印log:“hello glog.  類似於C++ stream。

}

Makefile:

LIB=$(HOME)/install/glog/lib    #glog 安裝路徑

INCLUDE=$(HOME)/install/glog/include

test_glog : main.o

        g++ -o [email protected] $^ -L$(LIB) -lglog –lpthread   #-lpthread 因為glog在多線程中需要一些鎖機制。

main.o: main.cpp

        g++ -c -o [email protected] $^ -I$(INCLUDE)

說明:

glog 預設對log分為4級: INFO,  WARNING,  ERROR,  FATAL.  列印log語句類似於C++中的stream,實際上LOG(INFO) 宏返回的是一個繼承自std::ostrstream類的對象。

           編譯運行上述demo, glog預設會在/tmp/目錄下產生log記錄檔:test_glog.search-x2.username.log.INFO.20111003-161341.2083

檔案名稱各欄位對應含義為:

<program name>.<hostname>.<user name>.log.<severity level>.<date>.<time>.<pid>

其中:

1),<program name> 其實對應google::InitGoogleLogging(argv[0]);中的argv[0],即通過改變google::InitGoogleLogging的參數可以修改記錄檔的名稱。

2),每個層級的日誌會輸出到不同的檔案中。並且進階別記錄檔會同樣輸入到低層級的記錄檔中。 即:FATAL的資訊會同時記錄在INFO,WARNING,ERROR,FATAL記錄檔中。預設情況下,glog還會將會將FATAL的日誌發送到stderr中。

 

現在的問題是:log總不能都列印到/tmp/目錄下吧。下面的小結來解決:

 

3, 參數設定:

不同於log4系列的日誌系統通過設定檔的方式, glog採用命令的方式來來配置參數。在glog的官方文檔裡,提到如下兩種方式來配置參數(以修改日誌目錄為例:)

1),gflags:

./your_application --log_dir=.

(gflags 我還沒有使用過)

2),export 修改環境變數,如下所示:修改GLOG_log_dir為上層目錄

 

 

3)以上兩種方法都需要使用命令列,除此之外,還可以直接在程式中指定(官方文檔中沒有提到, glog原始碼中也不鼓勵這麼用,但確實是可行的):

在glog/logging.h 標頭檔287---350行,有諸如“GLOG_log_dir”等變數的宏定義, 則其GLOG_log_dir實際為FLAGS_log_dir,  因此只需要在程式中設定FLAGS_log_dir的值即可。其他變數類似。取消main.cpp中的注釋行“// FLAGS_log_dir="."; ” 試試吧

 

4,  glog 支援功能列表如下

1, 參數設定,以命令列參數的方式設定標誌參數來控制日誌記錄行為;

2, 嚴重性分級,根據日誌嚴重性分級記錄日誌;

3, 可有條件地記錄日誌資訊;

4, 條件中止程式。豐富的條件判定宏,可預設程式終止條件;

5, 異常訊號處理。程式異常情況,可自訂異常處理過程;

6, 支援debug功能。可只用於debug模式;

7, 自訂日誌資訊;

8, 安全執行緒日誌記錄方式;

9, 系統級日誌記錄;

10, google perror風格日誌資訊;

11, 精簡日誌字串資訊。

功能點1,2見demo執行個體。 其他功能見在如下連結講的簡單明了,在此也不一一細說:

1)官方文檔(英文): http://google-glog.googlecode.com/svn/trunk/doc/glog.html#verbose

2)有網友的中文翻譯:http://mengjh.blog.51cto.com/2860827/546766

 

5,  總結:glog簡單易用,缺點感覺還是配置參數不如log4系列使用設定檔來的方便。在小規模程式(單元測試?功能點自測)中使用,應該是個不錯的選擇吧。

glog安裝(轉載)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.