google-glog 開源庫分析(二):glog用法


glog使用

  • 設置符號變量,定制日志行為
    • 具體符號變量的設置看glog介紹中的符號變量
  • 日志系統初始化
    • 初始化函數:google::InitGoogleLogging(argv[0])
    • 初始化參數一般是第一個命令行參數--即程序的名稱
  • 結束時可以調用關閉日志系統函數
    • 關閉日志庫函數:google::ShutdownGoogleLogging()
  • 程序運行時,可通過命令行參數或環境變量來控制程序的日志行為

glog APIs:

  • void google::InitGoogleLogging(const char* argv0)
    • 初始化glog庫,參數是第一個命令行參數即程序名
  • void google::ShutdownGoogleLogging()
    • 關閉glog庫
  • void google::FlushLogFiles(LoSeverity min_severity)
    • [Thread-safe]指定級別以上的所有日志消息都立即寫入到日志文件中
  • void google::FlushLogFilesUnsafe(LogSeverity min_severity)
    • 非線程安全的輸出指定級別以上的日志消息,用於災難性程序問題時輸出必要的日志消息
  • void google::SetLogDestination(LogSeverity severity,const char* base_filename)
    • [Thread-safe]設置指定級別的日志輸出的日志文件,如果base_filename為""則表示該級別日志不輸出
  • void google::SetLogSymlink(LogSeverity severity,const char* symlink_basename)
    • [Thread-safe]設置置頂級別的日志文件的軟連接,symlik_basename為空表示不設置軟連接
    • 如果不調用該函數,系統默認連接名稱是程序名
  • void google::AddLogSink(LogSink *destination)
  • void google::RemoveLogSink(LogSink *destination)
    • [Thread-safe]添加和刪除日志輸出渠道
  • void google::SetLogFilenameExtension(const char* filename_extension)
    • [Thread-safe]為所有日志文件添加文件擴展名,特別用於SetLogDestination()設置的日志文件
    • 通常做法是將監聽的端口號作為日志文件擴展名
  • void google::SetStderrLogging(LogSeverity min_severity)
    • [Thread-safe]確定除了輸出到日志文件同時還輸出到STDERR的日志最小級別
  • void google::LogToStderr()
    • [Thread-safe]設置只只將日志輸出到STDERR而不輸出到日志文件
  • void google::SetEmailLogging(LogSeverity min_severity,const char* address)
    • [Thread-safe]設置發送郵件的日志最小級別
  • bool google::SendEmail(const char *dest,const char *subject,const char *body)
    • [Thread-safe]發送郵件
  • const std::vectorstd::string& google::GetLoggingDirectories()
    • 獲取日志輸出目錄集合
  • void google::InstallFailureSignalHandler()
    • 信號處理函數,處理的主要信號有SIGSEGV/SIGILL/SIGFPE/SIGBRT/SIGBUS/SIGTERM
  • void google::InstallFailureWriter(void (*writer)(const char *data,int size))
    • 設置系統崩潰時的輸出函數,data數據不一定是以'\0'結尾
  • void google::InstallFailureFunction(void (*fail_func)())
    • 設置LOG(FATAL)在輸出日志消息后調用的函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM