写点什么

c++ 使用 Glog 生成多个具有相同等级的日志文件

作者:linux大本营
  • 2023-04-27
    湖南
  • 本文字数:666 字

    阅读完需:约 2 分钟

使用 Glog,可以通过设置不同的输出目录和文件名来生成多个具有相同等级的日志文件。


首先,需要在程序中初始化 Glog,并设置日志等级和输出目录:


#include <glog/logging.h>
int main(int argc, char* argv[]) { google::InitGoogleLogging(argv[0]); FLAGS_log_dir = "./logs"; FLAGS_alsologtostderr = true; FLAGS_minloglevel = google::INFO; ...}
复制代码


上述代码将日志输出到当前目录下的 logs 子目录中,并设置了最小日志等级为 INFO。如果想要生成多个同级别的日志文件,可以在不同的位置调用google::SetLogDestination()函数,指定不同的输出目录和文件名。


例如,以下代码将 INFO 级别的日志同时输出到 logs/info1.log 和 logs/info2.log 两个文件中:


google::SetLogDestination(google::INFO, "./logs/info1.log");google::SetLogDestination(google::INFO, "./logs/info2.log");
复制代码


注意,这些日志文件会包含所有等级大于等于指定等级(INFO)的日志信息。如果只想输出特定等级的日志,可以使用google::AddLogSink()函数,指定一个过滤器来筛选日志记录。例如,以下代码只将 WARNING 级别的日志输出到 logs/warning.log 文件中:


google::AddLogSink([](const google::LogEntry& entry) -> bool {  return entry.level() >= google::WARNING;}, google::GLOG_WARNING, "./logs/warning.log");
复制代码


需要注意的是,Glog 并不支持直接生成多个同级别的日志文件。因此,如果需要生成大量的日志文件,可能需要编写脚本或者使用其他工具来实现。


相关技术视频教程:c/c++ linux服务器开发/后台架构师免费学习地址

c/c++后端技术交流群:579733396

用户头像

还未添加个人签名 2020-11-26 加入

C/C++linux服务器开发群 812855908

评论

发布
暂无评论
c++ 使用Glog 生成多个具有相同等级的日志文件_c++_linux大本营_InfoQ写作社区