**Windows平台glog库** `glog`是一个广泛使用的开源日志库,源自Google,它提供了C++编程语言中的高级日志功能。这个库的主要目标是提供一个类似于Java的日志框架,具有丰富的功能,如堆栈跟踪、日志级别控制、日志文件旋转等。在Windows平台上使用glog,通常需要进行一些额外的配置,因为glog最初是为Linux环境设计的。 1. **安装与编译** - `glog`库通常以源码形式分发,需要使用编译工具进行构建。在Windows上,我们可以使用Visual Studio(例如VS2017)的C++编译环境来编译源码。 - 确保安装了Visual Studio并配置好C++开发环境。 - 下载`glog`的源代码,并解压到本地目录。 - 打开Visual Studio的命令行工具,导航到glog源码目录,运行`configure`脚本(如果有)或使用CMake来生成项目文件。 - 使用CMake时,指定生成的Visual Studio解决方案类型(如`--generator=Visual Studio 15 2017 Win64`)来创建64位项目。 - 生成解决方案后,在Visual Studio中打开,选择对应的Debug或Release模式,并编译项目。 2. **配置glog** - 在Windows上,glog需要链接` Advapi32.lib `库来使用Windows API。确保在你的项目设置中添加了这个依赖项。 - 设置glog的配置选项,如日志输出位置、日志级别(DEBUG、INFO、WARNING、ERROR、FATAL)等,可以通过预处理器宏或运行时配置实现。 - 编译时,需要链接` libevent `库(可选),如果需要支持异步日志处理。 3. **使用glog** - 引入glog头文件:`#include <glog/logging.h>` - 初始化glog:`google::InitGoogleLogging("your_program_name")` - 定义日志级别:`LOG(INFO) << "This is an info message."` - 错误和异常处理:`LOG(ERROR) << "An error occurred.";` 和 `LOG(FATAL) << "A fatal error occurred."` - 堆栈跟踪:FATAL级别的日志会自动打印堆栈跟踪信息。 - 日志文件配置:通过`FLAGS_logtostderr = 0;`将日志输出到文件,`FLAGS_log_file`定义日志文件名,`FLAGS_max_log_size`限制单个日志文件大小。 - 关闭glog:`google::ShutdownGoogleLogging();` 4. **注意事项** - glog在Windows上的行为可能与Linux有所不同,例如,它不支持信号处理和某些特定于Unix的功能。 - Windows环境下,glog的日志文件路径可能需要使用绝对路径,因为相对路径处理可能与Linux不同。 - 为了兼容不同版本的Visual Studio,需要检查编译器版本与glog源码的兼容性。 5. **调试与优化** - 在Debug模式下,glog会提供更多的调试信息,如堆栈跟踪等。 - 在Release模式下,glog会优化性能,减少不必要的开销。 - 可以通过修改`gflags`标志来调整glog的行为,例如,设置`--log_level`标志来改变默认的日志级别。 6. **与其他库集成** - glog可以与`gflags`库结合使用,方便地设置命令行参数。 - 如果你的项目中已经使用了其他日志库,集成glog可能需要处理冲突,例如,确保glog的日志输出不会覆盖其他库的日志。 Windows平台上的glog库提供了一个强大而灵活的日志解决方案,尽管与Linux环境有所不同,但通过适当的配置和调用,可以在Windows应用中充分利用其功能。理解和掌握glog的使用方法,对于编写稳定且易于调试的C++应用程序至关重要。
2025-07-30 21:27:11 274KB windows glog库
1
Qt中第三方日志库Glog的基本配置和使用详解案例,仅供参考,不可盲目相信,因为我的编译环境和您的不相同,所以建议参考文章自己编译,文章可参考:https://blog.csdn.net/didi_ya/article/details/123052672
2023-03-28 21:22:56 121KB qt 开发语言 c++ log
1
Glog定义了一系列的宏来简化记录日志的工作。你可以:按级别打印日志,通过命令行控制日志行为,按条件打印日志,不满足条件时终止程序,引入自定义的日志级别,等等。
2022-09-21 11:35:25 198KB Caffe
1
最近在学习ceres,以前是用vs2017编译的,昨天测试的时候发现使用vs2019竟然不能使用的重新编译,因此使用vs2019重新编译了一下ceres、eigen、gflags、glog、suitesparse的源码,整了一天才编译成功,真的挺难的,希望以后没有难编译的库,上传csdn以后再也不编译这几个库了
2022-09-07 12:01:56 12.43MB 编译库
1
Google Glog 是一个C++语言的应用级日志记录框架,提供了 C++ 风格的流操作和各种助手宏。
2022-07-07 09:48:38 550KB glog源码
1
配置caffe时,在make时候把报错(fatal error: glog/logging.h: No such file or directory),可下载安装此模块
2022-04-08 12:28:40 250KB 安装
1
google的C++日志库glog 已编译完成,并测试可用 平台vs2017 ,x64,静态库(只有.lib) 注意: 必须再引用头文件前定义以下宏,或者在预编译器中添加 #define GOOGLE_GLOG_DLL_DECL #define GLOG_NO_ABBREVIATED_SEVERITIES #include "glog/logging.h"
2022-03-07 11:20:47 146KB glog C++日志 日志
1
因为最近要用到glog,就用一晚上把glog的官方说明文档翻译了一下,比较粗略,但是大体上应该能勉强看懂,我也不知道为啥突然想把它翻译出来。大家觉得有用的话就下载下来看看,如果有建议的话可以联系我的CSDN号:xingfu0539。
2022-03-05 17:04:21 31KB glog 中文版
1
附件是VS2010的工程,C++日志类,谷歌的东西,很好用,也很强大哦! glog简介 Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似,例: LOG(INFO) << "Found " << num_cookies << " cookies"; “LOG”宏为日志输出关键字,“INFO”为严重性程度。 主要支持功能: 1, 参数设置,以命令行参数的方式设置标志参数来控制日志记录行为; 2, 严重性分级,根据日志严重性分级记录日志; 3, 可有条件地记录日志信息; 4, 条件中止程序。丰富的条件判定宏,可预设程序终止条件; 5, 异常信号处理。程序异常情况,可自定义异常处理过程; 6, 支持debug功能。可只用于debug模式; 7, 自定义日志信息; 8, 线程安全日志记录方式; 9, 系统级日志记录; 10, google perror风格日志信息; 11, 精简日志字符串信息。 开源代码托管 开源代码地址:https://github.com/google/glog 其实官方开源代码已经有大量demo可以参考了,也提供了VS可以直接打开编译的项目。 如何使用 1:把glog文件夹拷贝到源代码目录 2:在工程设置中添加附加包含目录(glog\include;)和附加库目录(glog\lib;),在附件依赖项中添加对应lib文件,一一对应关系如下: MDd libglog32MDd.lib MD libglog32MD.lib MTd libglog32MTd.lib MT libglog32MT.lib 建议使用MDd和MD方式,带上对应的dll(在glog\bin目录,需要时拷贝到bin文件输出目录)可以避免使用MTd,MT引起的内存泄露是值得的。 #include #include using namespace std; //包含glog头文件,建议放在stdafx.h中 //#define GOOGLE_GLOG_DLL_DECL // 使用静态库的时候用这个,不过我测试静态库有内存泄露,所以不推荐使用静态库 #define GLOG_NO_ABBREVIATED_SEVERITIES #include "glog/logging.h" //获取当前程序的运行目录 string GetAppPathA() { char szExePath[MAX_PATH] = {0}; GetModuleFileNameA(NULL,szExePath,MAX_PATH); char *pstr = strrchr(szExePath,'\\'); memset(pstr+1,0,1); string strAppPath(szExePath); return strAppPath; } void main() { //glog初始化 google::InitGoogleLogging("重签程序"); string strLogPath = GetAppPathA().append("LogInfo\\"); CreateDirectoryA(strLogPath.c_str(),NULL); google::SetLogDestination(google::GLOG_INFO,strLogPath.c_str()); //功能测试 LOG(INFO)<<"log start...";//普通日志 LOG(WARNING)<<"Warning log";//警告日志 LOG(ERROR)<<"Error log";//错误日志 int i = 4; LOG_IF(INFO,i == 4)<<"Log if Test"; //以上就是我常用的几个日志函数了,当然还有很多更加强大的日志相关函数,大家如有有兴趣,可以参照官方给的示例使用, //开源代码地址:https://github.com/google/glog MessageBoxA(NULL,"Test Over",":)",MB_ICONINFORMATION); } 测试程序中,我使用的动态链接库方式。(Debug模式中代码生成为MDd,Release为MD)。lib是截止现在2015-11-04-21:35是最新的。采用VS2010编译,MTd,MT,MDd,MD方式编译在测试项目中都有提供。 博文地址: http://blog.csdn.net/sunflover454/article/details/49643625
2022-02-22 19:39:14 571KB glog libglog C++日志类 谷歌日志类
1
谷歌日志库GLog 头文件 库文件,使用说明见http://www.cnblogs.com/a9999/p/5614761.html
2022-01-12 16:48:38 66KB glog libglog.lib libglog.dll
1