glog详解

2023-11-19

glog详解
1.   glog的安装与使用
     1、下载glog。
           http://code.google.com/p/google-glog/downloads/detail?name=glog-0.3.3.tar.gz
      2、安装glog。
           ./configure --preifx=mypath
           make
           make install
       最终在mypath目录下会生成.a和.so两种类型lib.
      3.   例子
#include <stdlib.h>
#include <glog/logging.h>


int main(int argc, char **argv) {
    google::InitGoogleLogging(argv[0]);
    google::SetLogDestination(google::GLOG_INFO,"./myInfo");
    LOG(INFO) << "HELLO" << "ok!";
    return 0;
}

     运行写一个shell脚本执行:
LIB_DIR='/apsarapangu/disk1/glog-0.3.3/lib/libglog.a'
INCLUDE_DIR='/apsarapangu/disk1/glog-0.3.3/include/'
g++ -g test.cpp $LIB_DIR -I$INCLUDE_DIR -lpthread -o test


2.   基于glog的日志插件

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* basefilename)
  • [Thread-safe]设置指定级别的日志输出的日志文件,如果basefilename为""则表示该级别日志不输出
  • void google::SetLogSymlink(LogSeverity severity,const char* symlinkbasename)
  • [Thread-safe]设置置顶级别的日志文件的软连接,symlikbasename为空表示不设置软连接
  • 如果不调用该函数,系统默认连接名称是程序名
  • 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::vector & 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)在输出日志消息后调用的函数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

glog详解 的相关文章

  • 计算机领域中随处可见的抽象

    想要管理多种具体的东西 那么需要遵守每种东西的规范 如果想要提供一种通用模式来对这些具体的东西统一管理 需要使用一种古老的技术 抽象 抽象是将多种具体的东西 管理时需要遵守的规范 的共同点抽取出来 放入到更高一层的抽象层 在抽象层不定义或少
  • unix环境高级编程——文件IO

    本期主题 unix环境高级编程 文件IO 文件IO 0 引言 1 文件描述符 2 IO编程中常用的API接口 1 open函数 2 close函数 3 read函数 4 write函数 5 lseek函数 3 函数sync fsync和fd

随机推荐

  • 51单片机中断详解(上)

    一 中断的概念 中断发生 CPU在处理某一事件A时 发生了另一事件B请求CPU迅速去处理 中断响应和中断服务 CPU暂时中断当前的工作 转去处理事件B 中断返回 待CPU将事件B处理完毕后 再回到原来事件A被中断的地方继续处理事件A 这一过
  • pgpool-II常见错误

    持续更新中 1 pg hba中的项不匹配 假设您的pgpool集群中有2个节点 您更新了其中一个节点中的pg hba conf条目 但忘记在其他节点上应用相同的条目 您会看到如下错误 psql d postgres U postgres h
  • 在Linux下编译micropython源码的方法(包括win10的ubuntu子系统)

    本文介绍了在Linux下编译micropython源码的方法 包括了虚拟机 win10子系统等 在Win10的应用商店中 提供了Linux的子系统 这是实际上是一个虚拟机软件 与virtualbox和vmplayer功能类似 下面就介绍在L
  • C语言 宏定义

    一 预备知识 一个项目可以通过 编译 链接最终形成一个可执行文件 每个源文件 cpp 都会单独编译 编译成一个目标文件 o 也可能是 obj 扩展名跟操作系统有关 然后系统把这些 o文件进行链接 最终形成一个可执行文件 编译做的事 词法 语
  • charles及弱网测试

    安装 安装完成后 charles gt help gt register 输入注册信息 Registered Name https zhile io License Key 48891cf209c6d32bf4 相关配置 1 安装根证书 h
  • 【华为OD机试】阿里巴巴找黄金宝箱(V)(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 语言限定 C clang11 C clang 11 Pascal fpc 3 0 2 Java jav
  • 跨时钟域电路设计——结绳法

    信号从快时钟域到慢时钟域过渡时 慢时钟可能无法对快时钟变化太快的信号进行采样 之前的同步器法对两个时钟间的关系有要求 结绳法适用于任何时钟域之间的过渡 结绳法的原理是将快时钟信号的脉冲周期延长 等到慢时钟周期采样后再 解绳 还原为原来的脉冲
  • Java 基础系列(十六) --- Java中模板引擎的使用

    模板引擎 1 关于动态页面的渲染 2 非模板引擎的弊端 3 模板引擎 3 1 什么是模板引擎 3 2 Thymeleaf 语法 3 3 模板引擎的使用 4 总结 1 关于动态页面的渲染 渲染就是把数据和页面进行结合起来 主要分为服务器渲染和
  • Vue3 集成 UEditor puls 富文本编辑器

    一 前端配置 1 下载代码https gitee com modstart lib ueditor plus tree master 2 解压压缩包 如下图 3 拿到dist文件夹的内容 重命名为UEditor 并将其复制到vue项目的pu
  • 未找到esUtil_win32.c 您需要查找 esUtil_win32.c 以通过查看源来确定当前调用堆栈帧

    前言 在调试OPENGL ES 3 0编程指南 原书第2版 中文版 pdf 中第8章的例子报错 在调试时 发现 esUtil win32 c文件中的代码 如下 if esMain esContext GL TRUE return 1 这里r
  • 如何零基础自学c/c++语言?

    现在零基础学习C C 无非就两种方法 一种是自学还有 一种就是报班学习 关于报班学习在这里就不多说了 那么今天就说怎么从零基础开始自学C C 编程吧 先学习C语言入门 那么问题来了 怎么去学习C语言呢 一开始肯定是要看书 这里推荐的入门书籍
  • scipy.stats的用法——常见的分布和函数

    介绍python统计函数库scipy stats中常见的分布和函数 commom distributions uniform norm poisson bernoulli expon lognorm norm t chi2 f commom
  • mysql中geometry字段的查询和保存

    有段时间为了追求效率 把用es相关的地理位置功能都去掉了 使用mysql已有的geometry的功能做地理位置 mybatis这块 TableName value t event info autoResultMap true 如果使用复杂
  • python根据excel时间表统计24小时各小时区间点的个数

    1 首先使用excel中的HOUR 函数 将日期数据 年 月 日 时 分 秒 转换为小时 表格命名为hour xlsx 2 使用python读取excel数据hour xlsx 将小时列转换为列表hour 将列表hour转换为集合myset
  • Java词频统计算法(使用单词树)

    许多英语培训机构 如新东方 都会出几本 高频词汇 的书 主要内容是统计近几年来各类外语考试中屡次出现的高频词汇 帮助考生减少需要背的生词的数量 但这些高频是如何被统计出来的呢 显然不会用手工去计算 假如我们已经将一篇文章存在一字符串 Str
  • EditText的三种监听内容的方式

    editText addTextChangedListener object TextWatcher override fun onTextChanged s CharSequence start Int before Int count
  • 招聘数据采集+Hive数据分析+数据可视化

    1 需求 背景描述 近年来随着IT产业的快速发展 全国各地对IT 类的人才需求数量也在不断 增多 XHS集团 为了明确今后IT产业人才培养方向 在多个省份进行 IT公 司岗位情况调研分析 你所在的小组将承担模拟调研分析的任务 通过在招聘 网
  • 【Apifox Helper】自动生成接口文档,IDEA+Apifox懒人必备

    文章目录 前言 缘由 接口文档对接爽 整理起来真费脑 本文阅读时长 约10分钟 前置条件 1 IDEA开发工具 2 Apifox 不必要 主要目标 一秒生成接口文档 水图 IDEA中项目接结构图 生成到Apifox接口文档图 试用人群 1
  • PowerDesigner15.1如何安装?汉化破解版安装教程(含安装文件、汉化包、破解文件)

    powerdesigner是能进行数据库设计的强大的软件 是一款开发人员常用的数据库建模工具 使用它可以分别从概念数据模型 Conceptual Data Model 和物理数据模型 Physical Data Model 两个层次对数据库
  • glog详解

    glog详解 1 glog的安装与使用 1 下载glog http code google com p google glog downloads detail name glog 0 3 3 tar gz 2 安装glog configu