简介

glog 是Google Logging的缩写,是实现了应用级别的日志记录功能的满足C++98标准的库。

安装

  • 安装gflags

# git clone https://github.com/gflags/gflags.git
git clone https://gitcode.net/mirrors/gflags/gflags.git
mkdir build
cd build
cmake -DCMAKE_CXX_FLAGS=-fPIC ..
make
sudo make install
  • 安装gtest

# git clone https://github.com/google/googletest.git
git clone https://gitcode.net/mirrors/google/googletest.git
mkdir build
cd build
cmake ..
make
sudo make install
  • 下载glog源码

git clone https://github.com/google/glog.git
  • 使用cmake 编译

cd glog
cmake -S . -B build -G "Unix Makefiles"
cmake --build build

安装

# 测试编译情况,可省略
cmake --build build --target test# 安装
cmake --build build --target install

使用

  • CMakeLists.txt文件修改

cmake_minimum_required (VERSION 3.16)
project (myproj VERSION 1.0)# find package
find_package (glog 0.6.0 REQUIRED)add_executable(${PROJECT_NAME}, main.cpp)# link
target_link_libraries (${PROJECT_NAME} glog::glog)
  • main.cpp修改

// 包含头文件
#include <glog/logging.h>// main函数初始化
google::InitGoogleLogging(argv[0]);
  • 使用

标准输出默认只打印ERROR和FATAL级别的信息。默认生成的全部log位于/tmp目录下。

LOG(INFO) << "TESTMESSAGE INFO" << std::endl;
LOG(WARNING) << "TESTMESSAGE WARNING" << std::endl;
LOG(ERROR) << "TESTMESSAGE ERROR" << std::endl;
LOG(FATAL) << "TESTMESSAGE FATAL" << std::endl;// 默认生成的log位于/tmp目录下

每一行的结尾的 std::endl 可以省略,默认会加换行。

  • 控制台打印

将GLOG_logtostderr设为1,则只会在控制台打印,不会保存在文件。反之设为0,只会保存到文件。

GLOG_logtostderr=1 ./build/mypoj

在程序中设置FLAGS_logtostderr=1也可以打印到控制台。

  • 设置保存的log文件目录

需要在初始化前设置。如果某一级别的路径设为空字符串即""则不会保存该级别的log。

std::string logPath        =  "./logs/";
std::string logInfoPath    = logPath + "info/";
std::string logWarningPath = logPath + "warning/";
std::string logErrorPath   = logPath + "error/";
std::string logFatalPath   = logPath + "fatal/";// set before InitGoogleLogging
google::SetLogDestination(google::GLOG_INFO, logInfoPath.c_str());
google::SetLogDestination(google::GLOG_WARNING, logWarningPath.c_str());
google::SetLogDestination(google::GLOG_ERROR, logErrorPath.c_str());
google::SetLogDestination(google::GLOG_FATAL, logFatalPath.c_str()); google::InitGoogleLogging(argv[0]);
  • INFO级别文件内容格式

Log file created at: yyyy/mm/dd hh:mm:ss
Running on machine: pc
Running duration (h:mm:ss): 0:00:00
Log line format: [IWEF]yyyymmdd hh:mm:ss.uuuuuu threadid file:line] msg
I20230213 11:30:26.891336  2145 main.cpp:65] TESTMESSAGE INFO
W20230213 11:30:26.891638  2145 main.cpp:66] TESTMESSAGE WARNING
E20230213 11:30:26.891757  2145 main.cpp:67] TESTMESSAGE ERROR
F20230213 11:30:26.891894  2145 main.cpp:68] TESTMESSAGE FATAL

linux glog安装使用相关推荐

  1. 无法使用_解决kali linux 2020 安装完后发现无法使用 ifconfig

    鱼蛋计算机交流群总部: 606219746 鱼蛋计算机交流分群002: 212088123 鱼蛋计算机交流分群003: 1020025486 鱼蛋计算机交流分群004:1158384728 (建议加此 ...

  2. linux编译安装jpeg,Linux下JPEG库安装脚本(转)

    Linux下JPEG库安装脚本(转)[@more@]该脚本用于在Linux下安装JPEG库,在安装GD库的时候如果没有JPEG库,GD将不能生成JPEG格式的图象. 作者: 何志强#----where ...

  3. Python基础学习1(Python的Windows和Linux的安装及简单学习)

    一Python的安装 1.Windows下安装Python (1)windows 命令行的几个常见的命令 dir:查看当前目录下的所有文件,以及目录 cd + NAME:进入到NAME目录下(tab键 ...

  4. linux valgrind 安装和使用

    linux valgrind 安装和使用 安装过程没这么复杂. 直接命令行: sudo apt-get install valgrind Valgrind 是个开源的工具,功能很多.例如检查内存泄漏工 ...

  5. linux命令安装组件,Linux安装各种组件

    [TOC] Linux安装各种组件 ============================= ## 安装JDK 官网下载最新JDK ``` http://www.oracle.com/technet ...

  6. linux上安装mysql,tomcat,jdk

    Linux 上安装 1 安装jdk 检测是否安装了jdk 运行 java –version 若有 需要将其卸载 a)         查看安装哪些jdk rmp –qa |grep java b)   ...

  7. linux下安装sbt_如何在Linux上安装SBT

    linux下安装sbt 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you how to install ...

  8. Kali Linux攻防系统(一:攻防系统Kali Linux下载安装与更新)

    任务一:攻防系统Kali Linux下载安装与更新 1.1.安装Kali Linux虚拟机 1.1.1.电脑硬件配置至少达到 CPU 内存 存储 >四核 >4G >20G 1.1.2 ...

  9. shell中竖线的作用_如何在 Linux 中安装、配置和使用 Fish Shell?

    每个 Linux 管理员都可能听到过 shell 这个词.你知道什么是 shell 吗? 你知道 shell 在 Linux 中的作用是什么吗? Linux 中有多少个 shell 可用? -- Ma ...

最新文章

  1. 【css】padding 和 margin的区别
  2. 一个推荐系统,实现完整的设计-在百度搜索关键词推荐案例
  3. 静态方法、类方法、属性方法
  4. 站长如何短线操作实现盈利
  5. ListIterator特有的方法
  6. C语言笔记:格式化输入输出(fprintf、fscanf、sscanf...)
  7. flatpickr功能强大的日期时间选择器插件
  8. python十个运维实战项目_干货 | 这4个Python实战项目,让你瞬间读懂Python!
  9. C/C++ Memory Layout
  10. 波特率、发送/接收时钟、波特率因子、传输距离
  11. indesign软件教程,如何更改内容颜色?
  12. Ubuntu下Chrome打不开解决办法
  13. B站 汇编语言 视频 教程
  14. 中文如何翻译成英文?手机中英文一键翻译超简单
  15. cl 7ar xyz index php,GIF 文件格式分析 -- chinawrc的世界 -- [北方博客].mht
  16. 【量化投资】策略二(聚宽)
  17. Logstash 原理分析/配置文件详解 时间 日期 时区 ip 反斜杠 grok在线地址 类型转换
  18. 交互式可视化报表怎么弄?看过来!
  19. FASTX-Toolkit
  20. (附Matlab程序)(二)基于DCT编码的图像压缩:对分解后的每个数据小方块进行DCT及IDCT变换

热门文章

  1. Photoshop蒙版介绍之图层蒙版
  2. Linux-基础命令练习
  3. NB-IoT是什么鬼
  4. 鸿蒙系统桌面纹路,PVC竟然做出皮革纹理质感,T110V-W独具匠心的设计
  5. C语言strcpy、strcnpy函数详解
  6. 滞回比较电路简便计算小工具
  7. 基于java+jsp实现威客任务平台
  8. C语言:什么是头文件
  9. echarts随着div改变而改变
  10. 关于虚拟机“Could not rrad from the boot medium“解决方法