glog在linux中的安装以及在vscode中的使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Google 日志记录 (glog)是一个实现应用程序级日志记录的 C++ 库14。该库提供基于 C++ 样式流和各种帮助程序宏的日志记录 API。是一款超级好用且方便的日志记录的第三方库。


一、第三方库源文件地址

链接: glog第三方库


二、下载源代码并编译

1.克隆对应的文件到本地

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

2.运行CMake以配置构建树。

代码如下(示例):

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

3.运行CMake以配置构建树。

注意:在编译下行代码时,需要有build这个文件夹在当前目录

cmake --build build

4.安装对应的动态库到本地资源中

注意:如果权限不够,请在最前面加上sudo

cmake --build build --target install

完成以上操作即可开始代码编写。


三、在vscode中代入代码并编写

1.vscode的目录结构

在这里插入图片描述
.vscode:是vscode的默认文件夹
build:是用于cmake的文件夹,可能生成很多中间键,所以放在一个文件夹中便于管理
CMakeLists.txt:用于cmake
main.cpp:源文件

2.主函数main.cpp中写出测试案例

#include <glog/logging.h>
#include <iostream>
using namespace std;
int main() {
  FLAGS_log_dir = "./log/";
  FLAGS_alsologtostderr = true;
  FLAGS_colorlogtostderr = true;
  FLAGS_stderrthreshold = google::GLOG_INFO;  //设置对应级别及以上级别标准输出
  FLAGS_max_log_size = 10;                    // 200MB

  google::InitGoogleLogging("myapp");
  google::SetLogDestination(google::GLOG_INFO,
                            std::string(FLAGS_log_dir + "info_").c_str());
  google::SetLogDestination(google::GLOG_WARNING,
                            std::string(FLAGS_log_dir + "warning_").c_str());
  google::SetLogDestination(google::GLOG_ERROR,
                            std::string(FLAGS_log_dir + "error_").c_str());
  google::SetLogDestination(google::GLOG_FATAL,
                            std::string(FLAGS_log_dir + "fatal_").c_str());
  google::SetLogFilenameExtension(".log");
  LOG(ERROR) << "yes";
  cout << "yes" << endl;
  return 0;
}

注意:在你直接拷贝上面代码到main.cpp中,会出现如下情况

在这里插入图片描述
这是因为vs没有识别到你是否使用了动态库的原因,所以需要在main.cpp的首行加上
#define GLOG_USE_GLOG_EXPORT
这样子,vscode就知道使用了动态库,就不会出现红色下划线了。
如果有必要,可能还需要再加上一行#pragma warning(disable : 4996)用于忽略一些无效报错。

3.编写cmake文件CMakeLists.txt

cmake_minimum_required (VERSION 3.16)
project (myproj VERSION 1.0)
find_package (glog 0.8.0 REQUIRED)
add_executable (myapp main.cpp)
target_link_libraries (myapp glog::glog)

正常的Cmake,只需要将终端cd到build文件夹,并执行如下指令,就可以生成myapp可执行文件了

cmake ..
make

4.vscode自动化编译

如果需要vscode能够自动化读取CMakeLists.txt,执行对应的cmake和make命令,则需要对vscode中的配置文件进行编译,主要需要修改配置文件为launch.json和tasks.json。

launch.json修改如下:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ - 生成和调试活动文件",
      "type": "cppdbg",
      "request": "launch",
      //可执行文件的绝对路径
      "program": "${workspaceFolder}/build/myapp",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "为 gdb 启用整齐打印",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "Build",
      "miDebuggerPath": "/usr/bin/gdb"
    }
  ]
}

tasks.json修改如下:

{
  "version": "2.0.0",
  "options": {
    //对应build文件夹的绝对路径
    "cwd": "${workspaceFolder}/build"
  },
  "tasks": [
    {
      "type": "shell",
      "label": "cmake",
      "command": "cmake",
      "args": [
        ".."
      ]
    },
    {
      "label": "make",
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "command": "make",
      "args": []
    },
    {
      "label": "Build",
      "dependsOrder": "sequence", //按列出的顺序执行任务依赖项
      "dependsOn": [
        "cmake",
        "make"
      ]
    }
  ]
}

当修改玩上述两个文件后,即可在vscode的调试中一键运行遍历当前项目文件。


四、glog的拓展使用

1.在window环境下通过vcpkg下载glog

小编之前做项目的时候,发现有限第三方库很难在window环境下进行搭建,导致每次新写一个算法,需要进行很长时间的环境搭配,但是vcpkg它类似于java中的maven,很好的解决了这些困扰,只需要输入几行命令,即可将第三方库软件下载到你当前的电脑上,然后直接使用。以glog为例,在安装好vcpkg后,执行以下命令:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install glog

这样,即可在你的vcpkg下载文件夹中找到所对应的include和lib文件,在编译你的文件时,直接将对应文件include和lib文件加入到你的项目中即可。推荐使用。
在这里插入图片描述

2.在linux环境下通过vcpkg下载glog

这个小编暂时没有试过,一般是直接clone了github,暂时没有碰到过特别难搭建的开源库,所以暂无经验,后续如有相关使用,第一时间更新。


总结

glog是一款特别好用的,项目级别的日志记录第三方库,它可以多样化输出的格式,并且有效的保存每次的记录结果,因为有专业的工程师编写,所以bug较少,非常推荐在一些自己的项目中去使用。本篇博客主要是记录自己刚使用glog的过程,便于后面可以回顾。

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Linux使用glog静态库的步骤如下所示: 1. 首先,将glog的静态库文件libglog.a和头文件src/glog复制到您的工程目录。这些文件可以从引用提供的资源获取。 2. 接下来,创建一个名为main.cpp的文件,并将以下代码添加到该文件: ``` /******************************************************** main.cpp ********************************************************/ #include <stdio.h> #include "glog/logging.h" int main() { // 初始化参数 FLAGS_logtostderr = false; // TRUE:标准输出,FALSE:文件输出 FLAGS_alsologtostderr = true; // 除了日志文件之外是否需要标准输出 FLAGS_colorlogtostderr = false; // 标准输出带颜色 FLAGS_logbufsecs = 0; // 设置可以缓冲日志的最大秒数,0指实时输出 FLAGS_max_log_size = 10; // 日志文件大小(单位:MB) FLAGS_stop_logging_if_full_disk = true; // 磁盘满时是否记录到磁盘 google::InitGoogleLogging("mqttserver"); google::SetLogDestination(google::GLOG_INFO, "./test"); LOG(INFO) << "this is log"; LOG(WARNING) << "this is warning"; LOG(ERROR) << "this is error"; google::ShutdownGoogleLogging(); } ``` 3. 编译和链接您的代码。您可以使用以下命令编译您的代码: ``` g++ main.cpp -o main -lglog ``` 这将生成一个名为main的可执行文件。 4. 运行您的程序。您可以使用以下命令运行您的程序: ``` ./main ``` 这将执行您的代码,并在"./test"目录下生成日志文件。 请注意,如果在编译过程遇到任何错误,请根据引用提供的信息检查头文件的路径是否正确,并确保已正确安装gflags和glog,如引用所述。 希望这可以帮助您在Linux使用glog静态库。如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值