如何在一个进程中使用GLOG将日志写入不同的日志文件

时间:2020-05-13 07:36:58

标签: glog

当我使用GLog作为日志文件时,我想将我的glog文件写到不同的日志文件中,例如log4j,但是Glog似乎不支持此功能,我该怎么办,我可以在一个函数中初始化两个glog,请帮助

1 个答案:

答案 0 :(得分:0)

这里有一些建议。

  1. Glog支持用户定义的记录器。您可以像下面那样实现自己的记录器。
class AsyncLogger : public google::base::Logger
  1. 您可以在消息中传递一些标志,然后根据该标志将日志存储到相应的文件中。
void AsyncLogger::Write(bool force_flush, time_t timestamp, const char* message,
                        int message_len) {
        int flag = GetFlag(message);
        string file_= file_name + flag + ".txt";
        fwrite(message, 1, message_len, file_);
}
  1. 创建宏定义并将标志添加到消息中
#define ALOG_MODULE_STREAM_INFO(module)                         \
  google::LogMessage(__FILE__, __LINE__, google::INFO).stream() \
      << flag << ","
  1. 然后将记录器设置为glog
google::base::SetLogger(FLAGS_minloglevel, async_logger);