glog支持按天轮转日志的方法
11 / 07 / 2013 buling

glog初始化的一些方法,其中如果要实时flush日志,可以设置FLAGS_logbufsecs=0;

    FLAGS_logbufsecs = 1;
    google::InitGoogleLogging("");
    google::SetLogDestination(google::GLOG_INFO, "./xxx.log.");

glog 不支持按天轮转日志,所以需要对glog源码做一些修改,修改如下
修改 src/logging.cc文件,第913行(LogFileObject::Write开始之前)加上如下代码

/***************CHANGE LOG BY DAY*************/
int _now_day = 0;
bool DayHasChanged(){
    time_t tt;
    time(&tt);
    struct tm *p;
    p=localtime(&tt);
    if(_now_day != p->tm_mday){
        _now_day = p->tm_mday;
        return true;
    }
    return false;
}
/********************************************/
//再修改LogFileObject::Write方法中判断语句加入
if (static_cast(file_length_ >> 20) >= MaxLogSize() ||
      PidHasChanged() || DayHasChanged()) {
,
0