C++第三方日志库Glog的安装与使用介绍

下面是关于C++第三方日志库Glog的安装与使用介绍的完整攻略:

安装Glog

系统要求

安装Glog前,你需要拥有以下环境:

  • 操作系统:Ubuntu/Debian或CentOS/RHEL
  • 编译器:GCC 4.8或更高版本

步骤

  1. 下载安装依赖库

Glog依赖于很多库,需要先下载安装:

Ubuntu/Debian:

sudo apt-get install autoconf automake libtool make
sudo apt-get install libgtest-dev
sudo apt-get install libssl-dev

CentOS/RHEL:

sudo yum install autoconf automake libtool make
sudo yum install gtest-devel #需要epel源
sudo yum install openssl-devel
  1. 下载Glog源码
wget https://github.com/google/glog/archive/refs/tags/v0.4.0.tar.gz
tar -zxvf v0.4.0.tar.gz
  1. 编译安装
cd glog-0.4.0
./configure --prefix=/usr/local/glog
make && sudo make install
  1. 配置动态链接库

编辑/etc/ld.so.conf,添加以下行:

/usr/local/glog/lib

然后运行命令更新动态链接库:

sudo ldconfig

使用Glog

HelloWorld

先来一个简单的HelloWorld示例:

#include <iostream>
#include <glog/logging.h>

int main(int argc, char** argv) {
    google::InitGoogleLogging(argv[0]);
    LOG(INFO) << "Hello, world!";
    return 0;
}

编译运行:

g++ -I/usr/local/glog/include -L/usr/local/glog/lib -lglog -o hello_world hello_world.cpp
./hello_world

在运行程序时会输出以下日志:

I0520 09:54:13.699283 22929 hello_world.cpp:6] Hello, world!

配置日志级别和输出目录

通过修改配置文件可以配置日志级别和输出目录。创建一个glog.conf文件:

# 日志等级(大于等于该等级的日志才会输出),可选值:INFO、WARNING、ERROR、FATAL
minloglevel = 0

# 日志文件输出目录
log_dir = "./logs"

# 日志文件大小超过max_size时自动切割(默认10MB)
max_size = 100

# 最多保留的日志文件数量(默认方法1000)
logbufsecs = 86400

在程序中引入该配置文件即可:

#include <iostream>
#include <glog/logging.h>

int main(int argc, char** argv) {
    FLAGS_log_dir = "./logs";
    FLAGS_minloglevel = google::INFO;
    google::InitGoogleLogging(argv[0]);
    LOG(INFO) << "Hello, world!";
    return 0;
}

编译运行:

g++ -I/usr/local/glog/include -L/usr/local/glog/lib -lglog -o hello_world hello_world.cpp
./hello_world --flagfile=glog.conf

这时,日志文件将会输出到./logs目录中,并且只输出INFO及以上级别的日志。

总结

通过上面的介绍,我们可以看到,使用Glog实现日志功能非常简单。只需要几行代码和简单的配置就可以实现日志的输出。Glog还提供了非常多的日志输出格式、日志切割和压缩功能,可以根据需要自由配置。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++第三方日志库Glog的安装与使用介绍 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • jsoneditor二次封装实时预览json编辑器组件react版

    为了方便大家使用 JSON 编辑器组件,可以对 jsoneditor 进行二次封装。下面是关于如何实现 jsoneditor 的二次封装的详细攻略。 准备工作 在开始实现之前,我们需要做一些准备工作: 安装依赖:在项目根目录下运行以下命令安装所需依赖: npm install jsoneditor react 引入样式:在index.js 文件中引入样式 i…

    C 2023年5月23日
    00
  • 荣耀畅玩8c怎么关闭后台?荣耀畅玩8c关闭后台应用教程

    下面我来详细讲解“荣耀畅玩8c怎么关闭后台?荣耀畅玩8c关闭后台应用教程”。 前言 荣耀畅玩8c 是一款性价比很高的手机,但是由于部分用户不了解如何关闭后台应用,在使用过程中会导致手机运行变慢、耗电等问题。因此,本文将详细介绍关闭荣耀畅玩8c 后台应用的方法。 步骤 方法一:手动清理后台应用 打开手机界面,找到 物理按键 或者 导航栏 。 双击 物理按键 或…

    C 2023年5月23日
    00
  • Linux系统下如何使用C++解析json文件详解

    下面是在Linux操作系统下如何使用C++解析Json文件的详细攻略。 1. 概述 在Linux系统下,C++解析Json文件的主要方式是使用第三方库,而rapidjson是其中一个被广泛使用的库,它提供了高性能、易使用、轻量级的Json解析功能,同时支持DOM(文档对象模型)和SAX(事件驱动)两种解析方式。接下来将以rapidjson为例,介绍如何在Li…

    C 2023年5月23日
    00
  • C++ Primer 第一部分基本语言

    C++ Primer 第一部分基本语言攻略 1. C++语言基础 本章节主要介绍了C++语言的基础知识,包括C++程序的结构、语句、类型、变量等。 C++程序的结构 #include <iostream> //头文件 int main() //主函数 { std::cout <<"Hello, world!" &l…

    C 2023年5月22日
    00
  • SpringMVC JSON数据交互及RESTful支持实现方法

    下面是详细讲解“SpringMVC JSON数据交互及RESTful支持实现方法”的完整攻略。 SpringMVC JSON数据交互及RESTful支持实现方法 什么是JSON JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 JavaScript 的一个子集。JSON采用完全独立于语言的文本格式,因此可…

    C 2023年5月23日
    00
  • C 程序 查找字符串的长度

    标题 本文将详细讲解如何使用 C 程序查找字符串的长度。 简介 在 C 语言中,字符串通常被定义为一个字符指针,即指向第一个字符的指针。C 语言提供了一种简单的方法来查找一个字符串的长度,即通过一个循环来遍历字符串,直到遇到字符串结束符 ‘\0’。本文将详细介绍这个过程,并提供两个示例来说明如何使用它。 查找字符串长度的代码 下面是查找字符串长度的代码示例:…

    C 2023年5月9日
    00
  • C语言实现进程间通信原理解析

    C语言实现进程间通信原理解析 什么是进程间通信? 进程是计算机中运行的程序的基本单位。每个进程都有自己的地址空间、代码、数据、变量等,它们相互独立,互相不干扰。进程间通信指的是不同的进程之间进行数据交换和共享资源的一种机制。 进程间通信的常见方式 进程间通信的常见方式有: 管道(Pipe) 消息队列(Message queue) 信号量(Semaphore)…

    C 2023年5月23日
    00
  • c++ 判断是64位还是32位系统的实例

    当我们需要在C++程序中进行操作系统相关的操作时,有时候需要知道当前操作系统的位数,即是32位还是64位系统。本篇攻略将给出两个示例,分别介绍如何判断当前操作系统的位数。 1. 使用宏: 在C++中我们可以使用宏来判断当前操作系统的位数。以下是几个标准宏的定义: _M_IX86 // 32位系统 _M_X64 // 64位系统 我们可以通过检测这些宏来判断当…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部