1.设置日志文件扩展名
//添加.log扩展名
google::SetLogFilenameExtension(".log");
2.修改日志文件命名格式
-
方法一:修改glog源码,自定义文件命名格式。
自定义logging.cc内time_pid_stream输入,重新编译即可。下例生成20240314_134809.log日志文件。
-
方法二:不更改源码库,但只能修改日志文件前缀:
//定义日志文件路径
std::string log_info_path = "../data/logs/info/";
//自定义文件名前缀Test
std::string log_info = log_info_path +"Test_";
google::SetLogDestination(google::GLOG_INFO, log_info.c_str());
3.自动创建日志存放文件夹
判断日志文件输入路径内文件夹是否存在,不存在创建文件夹
DIR *dir;
std::string str_command;
if ((dir = opendir(log_info_path.c_str())) == NULL)
{
str_command = "mkdir -p " + log_info_path;
system(str_command.c_str());
}
4.glog 快速使用
#include <glog/logging.h>
#include <dirent.h>
void GolgInit(std::string &log_info_path)
{
std::string log_info;
DIR *dir;
std::string str_command;
if ((dir = opendir(log_info_path.c_str())) == NULL)
{
LOG(INFO) << "日志存放目录不存在,创建日志存放目录文件" << std::endl;
str_command = "mkdir -p " + log_info_path;
system(str_command.c_str()); // 存在就删除目录
}
log_info = log_info_path + "testname_";
FLAGS_alsologtostderr = true;
FLAGS_colorlogtostderr = true;
google::SetLogDestination(google::GLOG_INFO, log_info.c_str());
google::SetLogFilenameExtension(".log");
LOG(INFO) << "google::IsGoogleLoggingInitialized :" << google::IsGoogleLoggingInitialized() << std::endl;
google::InitGoogleLogging("init logs------");
}
int main()
{
std::string log_info_path = "../data/logs/test/";
GolgInit(log_info_path);
#...
}