glogライブラリの基本使用

3386 ワード

glog
glogはgoogleオープンソースのプログラムレベルのログライブラリであり、c++ストリームスタイルに基づくAPIといくつかの簡略化マクロがGLOGの位置を取得することを提供しています.https://github.com/google/gloggit cloneをご利用いただけますhttps://github.com/google/glogソースの取得
Windows下glogライブラリのコンパイル
ソースファイルを取得すると、ソースディレクトリの下にVS 2010ベースgoolge-glogがある.slnソリューション、オープンエンジニアリングは4つのエンジニアリングが存在し、それぞれlibglog(DLL)、libglog_static(静的lib)、logging_unittest(DLLテストエンジニアリング)、logging_unittest_static(静的libテストエンジニアリング).Windowsはglogライブラリのヘッダファイルに基づいてソースディレクトリの下に保存されているsrcwindowsglog
ログの重大度レベル
glogログは、INFO、WARNING、ERROR、FATALの4つのレコードレベルに分けられ、出力ログレベルがFATALの場合、プログラムが直接中断されます.出力先glogを特に指定しないと、ログファイルは次の場所に記録されます」/tmp/...log....”,また、ERRORおよびFATALレベルのログをログファイルではなくstderrに出力します.上記の4つの標準レベルに加えて、verbose logをカスタマイズすることもでき、カスタムログはVLOGマクロを使用して出力する必要があります.
Windowsでglogライブラリを使用する際の注意点
  • はWindowsを含む.hの場合、#include
  • Windowsでglogライブラリを使用した初期化
    初期部分を次のように整理して、使いやすいようにします.
        #include "glog/logging"
        class GLogInit
        {
        public:
            GLogInit(char* name)
            {
                //         
                google::InitGoogleLogging(name);
                //                   
                //   2              
                google::SetLogDestination(google::INFO,"D:\\glogTest\\log");
                //                    
                FLAGS_logtostderr = false;
                //                     
                FLAGS_alsologtostderr = false;
                //            ,              
                FLAGS_stderrthreshold = google::FATAL;
                //                 ,    
                FLAGS_logbuflevel = google::WARNING;
                //           
                FLAGS_logbufsecs = 0;
                //           ,    , M   
                FLAGS_max_log_size =10;
                //       ,        
                FLAGS_stop_logging_if_full_disk = true;     
            }
    
            ~GLogInit()
            {
                google::ShutdownGoogleLogging();
            }   
        }
    
        //            GLogInit        glog    
        GLogInit glotInit("processName");

    glogライブラリのデフォルトログ出力フォーマット
    [IWEF]mmdd hh:mm:ss.uuuuuuuu threadid file:line]msg、警告レベルの頭文字に対応し、月日時間スレッドIDファイル名:行番号ログ情報、例えば:I 1229 10:05:17.50075 16248 mainwindow.cpp:20.test出力フォーマットはソースコードを変更することによってカスタマイズされ、glogライブラリはプロファイルの情報定義出力フォーマットを提供していない.