• google::Glog


    windows下使用google的Glog库
    下载glog-0.3.3.tar.gz,解压。
    vs2013打开工程, 有四个项目
    libglog
    libglog_static
    logging_unittest
    logging_unittest_static
    在liblog项目中logging.cc 文件中添加 #include <algorithm>  (不然无法编译过)
    然后逐个编译
    libglog  --> libglog.dll (动态工程库)
    libglog_static --> libglog_static.lib (静态工程库)
    logging_unittest --> logging_unittest.exe  (动态工程库测试工程)
    logging_unittest_static --> logging_unittest_static.exe (静态工程库测试工程)
    1、使用静态库
    将glog-0.3.3glogsrcwindowslog 目录拷贝到项目工程中。
    在stdifx.h中添加
    #define GOOGLE_GLOG_DLL_DECL
    #define GLOG_NO_ABBREVIATED_SEVERITIES
    #include "glog/logging.h"
    #ifdef DEBUG
        #pragma comment(lib, "libglog_static_d.lib")
    #else
        #pragma comment(lib, "libglog_static.lib")
    #endif // DEBUG


    2、在程序初始化时加 google::InitGoogleLogging("logInit"); google::SetLogDestination(google::GLOG_INFO, "F:\logs\");//设置路径 google::SetStderrLogging(google::GLOG_INFO);//设置错误路径 google::SetLogFilenameExtension("log_");//设置文件头 FLAGS_colorlogtostderr = true; // Set log color FLAGS_logbufsecs = 0; // Set log output speed(s) FLAGS_max_log_size = 1024; // Set max log file size FLAGS_stop_logging_if_full_disk = true; // If disk is full

    3、程序输出 LOG(INFO) << str <<std::endl; 4、在程序退出地方加 google::ShutdownGoogleLogging();
    glog使用与功能修改
    
    1.增加文件按天区分
    
    glog是根据进程ID来区分文件的,如果你重新启动了程序,则log文件的名字就会变,
    这样似乎不太满足我的需求,我还要求它可以每天生成文件,方便我整理和分析log,
    其实也有办法,自己增加一个按天滚文件的函数就可以了。
    在utilities.cc中增加函数如下,(因为PidHasChanged()在这个文件里)
    static int32 g_main_day = 0;
    bool DayHasChanged()
    {
        time_t raw_time;
        struct tm* tm_info;
    
        time(&raw_time);
        tm_info = localtime(&raw_time);
    
        if (tm_info->tm_mday != g_main_day)
        {
            g_main_day = tm_info->tm_mday;
            return true;
        }
    
        return false;
    }
    
    在logging.cc的LogFileObject::Write函数中将
    if (static_cast<int>(file_length_ >> 20) >= MaxLogSize() ||
        PidHasChanged()) {
    改成
    if (static_cast<int>(file_length_ >> 20) >= MaxLogSize() ||
     PidHasChanged() || DayHasChanged()) {
    
    这样就会按照天来输出log了。
    

      

  • 相关阅读:
    PHP做Web开发的MVC框架(Smarty使用说明 )
    PHP + Smarty + html5 构建Wap应用
    HTML5游戏中动画帧的概念理解
    [转]jQuery选择器 (详解)
    2014马年应该有怎么样的学习方式和思考原则
    html5视频播放解决方案
    html5学习摘要
    sqlserver2008行锁
    关于一些url中传递参数有空格问题
    MongoDB和Redis区别
  • 原文地址:https://www.cnblogs.com/osbreak/p/9482389.html
Copyright © 2020-2023  润新知