首页 > 系统相关 >(笔记)Linux下glog日志库的详细使用方法

(笔记)Linux下glog日志库的详细使用方法

时间:2024-03-01 17:33:25浏览次数:29  
标签:INFO google log Glog FLAGS Linux 日志 glog

 

Glog是一个开源的C++日志库,它提供了非常方便的日志记录功能。下面是使用Glog的详细步骤:

 

一、安装Glog库

您可以从Glog的官方网站(https://github.com/google/glog)下载Glog的源代码,然后进行编译和安装。在Linux系统下,您可以使用以下命令安装Glog库:

sudo apt-get install libgoogle-glog-dev

 

 

二、使用Glog库

1、引入Glog库

在您的C++代码中,您需要引入Glog库的头文件:

#include <glog/logging.h>

 

2、初始化Glog

在您的C++代码中,您需要在main函数中初始化Glog:

google::InitGoogleLogging(argv[0]);

这个函数将初始化Glog,并将日志输出到标准输出。如果您希望将日志输出到文件中,您可以使用以下代码:

 

google::InitGoogleLogging(argv[0]);
google::SetLogDestination(google::GLOG_INFO, "/file");

这个函数将将日志输出到指定的文件中。

 

3、记录日志
在您的C++代码中,您可以使用以下代码来记录日志:

LOG(INFO) << "This is an information message";
LOG(WARNING) << "This is a warning message";
LOG(ERROR) << "This is an error message";

这些语句将分别记录信息、警告和错误日志,并将它们输出到标准输出或指定的文件中。

 

4、设置日志级别
您可以使用以下代码来设置日志级别:

FLAGS_minloglevel = google::INFO;

这个函数将设置日志级别为INFO,这意味着只有INFO、WARNING和ERROR级别的日志会被记录。

 

5、设置日志格式
您可以使用以下代码来设置日志格式:

FLAGS_logtostderr = false;
FLAGS_log_dir = "/path/to/log/dir";
FLAGS_alsologtostderr = true;

这些函数将设置日志输出的格式和位置。如果FLAGS_logtostderr设置为true,日志将输出到标准输出;如果设置为false,则日志将输出到指定的文件中。FLAGS_log_dir将指定日志文件的保存路径。如果FLAGS_alsologtostderr设置为true,则日志将同时输出到标准输出和指定的文件中。

 

6、关闭Glog
在您的C++代码的最后,您需要关闭Glog:

google::ShutdownGoogleLogging();

这个函数将清除Glog的状态并关闭日志记录。

 

三、附:完整代码参考

#include <iostream>
#include <glog/logging.h>
 
int main(int argc, char* argv[]) {
    google::InitGoogleLogging(argv[0]);
    google::SetLogDestination(google::GLOG_INFO, "./file/log");

    FLAGS_minloglevel = google::INFO;
    google::SetLogFilenameExtension("_test_"); //在日志文件名中级别后添加一个扩展名。适用于所有严重级别

    FLAGS_max_log_size=20;
    //FLAGS_log_dir = "/tmp/logs/"; 
        LOG(INFO) << "hello world";
    LOG(INFO) << "This is an information message";
    LOG(WARNING) << "This is a warning message";
    LOG(ERROR) << "This is an error message";


    google::ShutdownGoogleLogging();
    return 0;
}

 

 

编译:g++ glog_test.cpp -o test -lglog
运行:sudo ./test

 

此代码将在运行程序目录下生成日志文件:

 

 

 

 

 

 

注:需注意SetLogDestination中若包含路径,一定需提前创建好路径文件夹(如./file/log中的file就是路径文件夹),否则不能生成日志文件,提示如下:

Could not create log file: No such file or directory
COULD NOT CREATE LOGFILE '20240301-012315.11278'!

 

 

参考部分内容链接:https://blog.csdn.net/weixin_33204399/article/details/131124977

 

标签:INFO,google,log,Glog,FLAGS,Linux,日志,glog
From: https://www.cnblogs.com/tdyizhen1314/p/18047566

相关文章

  • Linux screen命令的用法
    当谈到在Linux终端中管理会话时,screen是一个非常有用的工具。它允许你在单个终端会话中创建多个虚拟终端,从而可以同时运行多个任务,即使在断开与服务器的连接后也可以保持这些会话。下面是关于screen命令的详细介绍:1.安装和启动screen:通常,screen已经预装在大多数Linux发行版......
  • 浮木云学习日志(9)---模块统计设计
    ​在SaaS系统中,统计模块是非常重要的一个功能。对于C端产品,可能会展示用户个人使用数据,比如Keep中的锻炼时长统计。虽然这些数据只是供用户了解自己的使用情况,并非必需。然而,在B端的SaaS系统中,由于用户众多且业务复杂,公司管理层需要查看全公司数据和员工绩效情况。因此,SaaS系统必......
  • 2024-03-01-Linux高级网络编程(6-原始套接字)
    6.原始套接字6.1TCPUDP回顾数据报式套接字(SOCK_DGRAM)无连接的socket,针对无连接的UDP服务可通过邮件模型来进行对比流式套接字(SOCK_STREAM)面向连接的socket,针对面向连接的TCP服务可通过电话模型来进行对比这两类套接字似乎涵盖了TCP/IP应用的全部TCP......
  • linux 中 grep命令检测出$符号
     001、[root@pc1test2]#lsa.txt[root@pc1test2]#cata.txt##测试数据xxyy$kkffee88uueeww$[root@pc1test2]#grep"$"a.txt##grep直接检测,检测不到xxyy$kkffee88uueeww$[root@pc1test2]#grep"\$"a.txt......
  • VMware 虚拟机中 Linux 系统Centos7磁盘空间扩容(亲测)
    1.修改虚拟机磁盘容量​ 例如之前虚拟机磁盘空间为20G,现要将磁盘容量设置为30G​ 打开虚拟机(必须处于关机状态),点击【编辑虚拟机设置】,然后点击【磁盘】,接着点击【扩展】,输入修改后的最大磁盘容量30G,具体操作时最大容量根据自己的需求设置即可。​ 输入完成最大磁盘容量后,点击扩......
  • Linux下system()与execl()的区别,popen()
    System与exec的区别1、system()和exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程2、system()和exec()都有能产生返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程 popen()system()函数用起......
  • 在K8S中,如何查看kubelet组件的日志?
    在Kubernetes(K8S)中,查看kubelet组件的日志可以通过几种不同的方法。以下是详细的步骤:使用journalctl命令:如果kubelet是通过systemd方式部署的,你可以使用journalctl命令来查看其日志。执行journalctl-ukubelet将显示kubelet的日志信息。如果需要查看实时更新的日志,可以添加-f......
  • Linux查看服务器内存
    参考:https://blog.csdn.net/while_int/article/details/130844627freefree命令用来显示系统内存状态,包括系统物理内存、虚拟内存(swap交换分区)、共享内存和系统缓存的使用情况#-m选项是以MB为单位来展示内存使用信息free-m#-h选项则是以人类(human)可读的单位来展示free......
  • 2024-02-29-Linux高级网络编程(4-TCP编程)
    4.TCP编程4.1TCP介绍面向连接的流式协议;可靠、出错重传、且每收到一个数据都要给出相应的确认通信之前需要建立链接服务器被动链接,客户端是主动链接TCP编程流程服务器:1.创建套接字socket()2.将套接字与服务器网络信息结构体绑定bind()3.将套接字设置为监听状......
  • 查看 App 的崩溃日志
    热烈欢迎,请直接点击!!!进入博主AppStore主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!!我们都希望我们的App永远不会崩溃。然而,当崩溃发生时,从这些崩溃中捕获的日志可以帮助你排除bug,并使你的App重新开始运行。如果出现问题,你的App会自动从选择向你发送匿名崩溃数据......