来源:微信公众号「编程学习基地」

文章目录

  • 下载
  • 编译
  • 使用
  • glog日志支持崩溃打印堆栈

下载

git clone https://github.com/google/glog.git

编译

cd glog
mkdir build
cd build/
cmake ..
make
sudo apt-get install

使用

#include <glog/logging.h>int main(int argc, char* argv[])
{// 设置日志文件路径FLAGS_log_dir = "./";// 初始化日志库google::InitGoogleLogging(argv[0]);// 日志...LOG(INFO) << "Found " << " main " << " cookies";// 关闭日志库google::ShutdownGoogleLogging();return 0;
}
g++ -o glog glog.cpp -lglog

相关设置Demo

#include <glog/logging.h>
#include <unistd.h>
#include <iostream>
#include "unistd.h"
#define DA_LIKELY(x) __builtin_expect(!!(x), 1)
#define DA_UNLIKELY(x) __builtin_expect(!!(x), 0)
/*** @brief 打印崩溃日志*/
void LogProcSignal(char const* data, unsigned long size)
{LOG(ERROR) << ":Error..." << data;return;
}
void test(const char* data, size_t size){}
/*** @brief * * @param cfgFile 日志的大路径* @param proName 日志名* @param subDir  日志的子路径* @return int */
int initLog(const char *sLogPath, const char *proName, const char *subDir)
{int logFileSize = 60;std::string logPath = sLogPath;if (logPath.at(logPath.length() - 1) != '/'){logPath += "/";}logPath += subDir;if (access(logPath.c_str(), 0) != 0){std::string cmd = "mkdir -m 666 -p " + logPath;system(cmd.c_str());}google::InitGoogleLogging(proName);            //初始化glog库FLAGS_stderrthreshold = google::INFO;       //设置输出到stderr的限制   比INFO大的都输出// FLAGS_logtostderr = true;FLAGS_colorlogtostderr = true;FLAGS_stop_logging_if_full_disk = true;     // 当磁盘已满时,停止输出日志文件FLAGS_log_dir = logPath;if (logFileSize > 0){FLAGS_max_log_size = logFileSize;}#if (defined (__x86_64__))#elif(defined (__arm__))FLAGS_logbufsecs = 5;google::SetLogDestination(google::GLOG_WARNING, ""); // 如果设置为"", 则表示不需要写相应等级命名的文件google::SetLogDestination(google::GLOG_ERROR, ""); // 如果设置为"", 则表示不需要写相应等级命名的文件
#endifgoogle::InstallFailureSignalHandler();// google::InstallFailureWriter(&test);return 0;
}int main(int argc, char* argv[])
{// 首先关闭之前的日志initLog("/home/ubuntu/dengzr/glog","test","192.168.22.70");// 日志...for(int i=0;i<3;i++)LOG(INFO) << "Found " << " main " << " cookies";// 关闭日志库google::ShutdownGoogleLogging();return 0;
}

makefile

glog:glog.cppg++ -o glog glog.cpp -lglog

glog日志支持崩溃打印堆栈

需要安装gflags库

tar zxf gflags-master.tar.gz
cd gflags-master/
mkdir build
cd build/
cmake .. -DCMAKE_INSTALL_PREFIX=/home/workspace/dengzr/linux-x64/
make && make install

同时安装glog时添加gflags支持

cmake .. -DCMAKE_INSTALL_PREFIX=/home/workspace/dengzr/linux-x64/ -Dgflags_DIR=/home/workspace/dengzr/lib/gflags-master/build
make &&make install

通过设置添加崩溃回调

 google::InstallFailureSignalHandler();// google::InstallFailureWriter(&test);

同时makefile需要添加-lgflags支持

glog:main.cppg++ -o main main.cpp -lglog -lgflags -lpthread -I /home/workspace/dengzr/linux-x64/include -L /home/workspace/dengzr/linux-x64/lib

glog编译安装使用相关推荐

  1. Ubuntu下正确使用cmake编译安装glog

    1,安装gflags git clone https://github.com/gflags/gflags.git cd gflags mkdir build && cd build ...

  2. Caffe 编译安装

    From: http://caffe.berkeleyvision.org/installation.html 安装 安装前,最好阅读下面的安装指导并注意和你的系统平台相关的细节问题.我们已经在 Ub ...

  3. centos 7 nginx hhvm mysql_CentOS 7 编译安装 HHVM 3.4.1

    博客彻底迁移到了DigitalOcean上,无奈囊中羞涩,只能开个512MB内存的Droplet... 只不过,小内存也可以玩出花样.之前就一直想尝试用一下HHVM,无奈编译实在是太麻烦,一直偷懒没使 ...

  4. linux下caffe-gpu的编译安装

    服务器的环境 Ubuntu18.04, python3.6 CUDA 10.0, cuDNN 7.6.3 opencv3.4.6 查看cuda和cudnn版本 nvcc -V cat /usr/loc ...

  5. Win10 OpenCV编译安装CUDA版本

    Win10 + Microsoft Visual Studio Community 2017 + CUDA11.3 + CUDNN8.2 + RTX GeForce 3090 + OpenCV4.5. ...

  6. Rime输入工具的修改与编译安装

    作为一个比较"事儿多"的五笔用户,在使用过几乎所有的主流输入工具后,我最终选择了定制性非常高(同时也比较难以上手)的Rime.刚开始是在Windows下使用小狼毫0.9.30版,这 ...

  7. C++第三方日志库Glog的安装与使用超详解

    目录 一.glog介绍 二.glog下载 三.环境介绍 三.glog的编译详解 3.1 利用CMake进行编译,生成VS解决方案 3.2 利用VS对项目进行编译 四.glog的基本使用 4.1 创建V ...

  8. 配置Fairseq的wav2ec采坑日志3:编译安装flashlgiht

    编译安装 flashlight 最终结论 vcpkg版本的安装不适合国内,因为不可访问.所以使用源代码编译版本. !!!注意!!! 不好意思各位:按照如下教程只能保证编译通过,但是最终测试遇到库依赖的 ...

  9. Windows 10下编译安装Hadoop2.6

    转自:https://www.linuxidc.com/Linux/2016-08/134131.htm Windows 10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x ...

最新文章

  1. python环境问题踩坑
  2. Single molecule real-time (SMRT) sequencing comes of age: applications and utilities for medical dia
  3. win7局域网计算机 慢,Win7系统开机宽带连接很慢怎么办?
  4. AIX 常用命令汇总(二)
  5. Linux驱动开发流程四步走
  6. 解决Qt-至少需要一个有效且已启用的储存库 问题
  7. 年轻人刚入社会就进厂打工不丢人
  8. LuaTinker向Linux移植成功
  9. Linux下7z工具安装
  10. orcad中的PSpice仿真加入厂商模型
  11. 【聚类分析】基于matlab GUI K-means聚类分析【含Matlab源码 791期】
  12. DoTween详细使用教程
  13. AutoJs学习-实现区域截图+文字识别+摇一摇截图+截图查看器
  14. 优化计算机组策略,windows系统优化--使你的计算机飞起来
  15. reviewboard--ubuntu安装reviewboard
  16. defineExpose暴露
  17. android 读写sd文件系统,SD卡FAT16文件系统的学习笔记
  18. 【沃顿商学院学习笔记】宏观经济学——03国际移民与城市发展Immigration and Cities
  19. java pdfbox 转jpg_java实现PDF转图片的方法
  20. solidworks渲染材质库_solidworks渲染材质参数

热门文章

  1. u盘推荐知乎_有哪些使用方便的高速u盘,求推荐?
  2. Windows下双网卡配置静态路由,实现内外网同时使用
  3. ubuntu18.04 安装 ros2 foxy
  4. 2022-11-17 vue移动端卖座电影项目(一) 获取后台数据
  5. python中average什么意思_在Python3 numpy中mean和average的区别详解
  6. python爬取豆瓣网评并写入excel表格中
  7. 关于RTT、TTL、MSL的概念解释
  8. 加百利号角/托里拆利小号
  9. 耦合协调度指标如何分析?
  10. android pick file,Materia风格的Android文件选择器:MaterialFilePicker_Android_移动开发