glog编译安装使用
来源:微信公众号「编程学习基地」
文章目录
- 下载
- 编译
- 使用
- 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编译安装使用相关推荐
- Ubuntu下正确使用cmake编译安装glog
1,安装gflags git clone https://github.com/gflags/gflags.git cd gflags mkdir build && cd build ...
- Caffe 编译安装
From: http://caffe.berkeleyvision.org/installation.html 安装 安装前,最好阅读下面的安装指导并注意和你的系统平台相关的细节问题.我们已经在 Ub ...
- centos 7 nginx hhvm mysql_CentOS 7 编译安装 HHVM 3.4.1
博客彻底迁移到了DigitalOcean上,无奈囊中羞涩,只能开个512MB内存的Droplet... 只不过,小内存也可以玩出花样.之前就一直想尝试用一下HHVM,无奈编译实在是太麻烦,一直偷懒没使 ...
- linux下caffe-gpu的编译安装
服务器的环境 Ubuntu18.04, python3.6 CUDA 10.0, cuDNN 7.6.3 opencv3.4.6 查看cuda和cudnn版本 nvcc -V cat /usr/loc ...
- Win10 OpenCV编译安装CUDA版本
Win10 + Microsoft Visual Studio Community 2017 + CUDA11.3 + CUDNN8.2 + RTX GeForce 3090 + OpenCV4.5. ...
- Rime输入工具的修改与编译安装
作为一个比较"事儿多"的五笔用户,在使用过几乎所有的主流输入工具后,我最终选择了定制性非常高(同时也比较难以上手)的Rime.刚开始是在Windows下使用小狼毫0.9.30版,这 ...
- C++第三方日志库Glog的安装与使用超详解
目录 一.glog介绍 二.glog下载 三.环境介绍 三.glog的编译详解 3.1 利用CMake进行编译,生成VS解决方案 3.2 利用VS对项目进行编译 四.glog的基本使用 4.1 创建V ...
- 配置Fairseq的wav2ec采坑日志3:编译安装flashlgiht
编译安装 flashlight 最终结论 vcpkg版本的安装不适合国内,因为不可访问.所以使用源代码编译版本. !!!注意!!! 不好意思各位:按照如下教程只能保证编译通过,但是最终测试遇到库依赖的 ...
- Windows 10下编译安装Hadoop2.6
转自:https://www.linuxidc.com/Linux/2016-08/134131.htm Windows 10下安装Hadoop2.6,Windows10下编译64位Hadoop2.x ...
最新文章
- python环境问题踩坑
- Single molecule real-time (SMRT) sequencing comes of age: applications and utilities for medical dia
- win7局域网计算机 慢,Win7系统开机宽带连接很慢怎么办?
- AIX 常用命令汇总(二)
- Linux驱动开发流程四步走
- 解决Qt-至少需要一个有效且已启用的储存库 问题
- 年轻人刚入社会就进厂打工不丢人
- LuaTinker向Linux移植成功
- Linux下7z工具安装
- orcad中的PSpice仿真加入厂商模型
- 【聚类分析】基于matlab GUI K-means聚类分析【含Matlab源码 791期】
- DoTween详细使用教程
- AutoJs学习-实现区域截图+文字识别+摇一摇截图+截图查看器
- 优化计算机组策略,windows系统优化--使你的计算机飞起来
- reviewboard--ubuntu安装reviewboard
- defineExpose暴露
- android 读写sd文件系统,SD卡FAT16文件系统的学习笔记
- 【沃顿商学院学习笔记】宏观经济学——03国际移民与城市发展Immigration and Cities
- java pdfbox 转jpg_java实现PDF转图片的方法
- solidworks渲染材质库_solidworks渲染材质参数
热门文章
- u盘推荐知乎_有哪些使用方便的高速u盘,求推荐?
- Windows下双网卡配置静态路由,实现内外网同时使用
- ubuntu18.04 安装 ros2 foxy
- 2022-11-17 vue移动端卖座电影项目(一) 获取后台数据
- python中average什么意思_在Python3 numpy中mean和average的区别详解
- python爬取豆瓣网评并写入excel表格中
- 关于RTT、TTL、MSL的概念解释
- 加百利号角/托里拆利小号
- 耦合协调度指标如何分析?
- android pick file,Materia风格的Android文件选择器:MaterialFilePicker_Android_移动开发