码迷,mamicode.com
首页 > 编程语言 > 详细

C++开源日志类

时间:2015-12-14 21:18:35      阅读:678      评论:0      收藏:0      [点我收藏+]

标签:

  今天想给我的C++项目找一个开源的日志类,用于记录系统日志,结果浪费了半个下午的时间。从网上搜索相关资料,找到以下几个备选方案:

1、log4cplus  下载地址:http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.1.0

2、log4cxx  下载地址:http://logging.apache.org/log4cxx/download.html  (log4cxx 是由JAVA实现的 log4j 开源的,用C++实现的一个开源库)

3、glog  下载地址:http://code.google.com/p/google-glog/downloads/list

4、log4cpp  下载地址: http://sourceforge.net/projects/log4cpp/files

  我初步看了一下,第1个和第4个是sourceforge网站上的开源项目,不知道是不是被屏蔽了,总之是打不开网页。浪费我半小时找代理和FQ,均找不到。看到第2个是Java注明的日志类log4j的姊妹C++版,顿时感觉应该不错,结果编译的过程让我直接疯掉了。先是下载log4cxx源代码,又说光下载这个还不够,还要下载另外两个Apache项目(apr、apr-util)代码,下完这三个还不行,在Windows下编译还需要下一个Windows X64版本的Sed,好吧,这还不算数,居然还是链接失败,网上还找不到相应的解决方案,整个过程浪费我4个小时。

  所以今天的教训就是,人家的开源项目根本就不待见Windows平台,或者说根本不待见我这样的菜鸟。既然我是Windows平台上的一只小菜鸟,那我就老老实实用简单的东西吧。从第三方网站上下载Google glog,编译一下居然轻松通过,很好!

  1、从网上下载google-glog-v0.3.4-50-gde75983.zip,解压到本地,可以看到工程文件google-glog.sln,可以用Visual Studio 2008打开。

  2、直接编译就可以得到libglog.dll、libglog.lib等文件,这里的lib文件在编译时要用,而dll文件则是运行时要用的,可以看出这里的glog采用的是“隐式”动态链接库编译方法。

  3、将解压出来的文件夹路径:“google-glog\src\windows”添加到Visual Studio 2008 的工程路径中,以便于引用头文件。同时将上一步编译出来的lib文件加入路径或者直接拷贝到自定义工程路径中;

  4、使用如下代码可以测试使用:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 #include <glog/logging.h>
 5 #pragma comment(lib, "libglog.lib")
 6 
 7 int main(int argc, char **argv)
 8 {
 9     google::InitGoogleLogging("KLH");
10     google::SetLogDestination(google::INFO, "F://");
11 
12     char str[20] = "hello log!";    
13     LOG(INFO) << "Found " << google::COUNTER <<endl;    
14     LOG(INFO) << str ;                // << " cookies";    
15     LOG(WARNING) << "warning test";    // 会输出一个Warning日志    
16     LOG(ERROR) << "error test";        // 会输出一个Error日志 
17 
18     system("pause");
19     return 0;
20 }

  5、编译生成的exe文件还不能直接运行,需要将第3步编译的dll文件拷贝到相同目录中才能运行。测试的日志文件自动生成在F:/根目录中。类似于如下格式内容:

1 Log file created at: 2015/12/14 20:28:18
2 Running on machine: VICTO-PC
3 Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
4 I1214 20:28:18.590252  9648 main2.cpp:13] Found 0
5 I1214 20:28:18.591253  9648 main2.cpp:14] hello log!
6 W1214 20:28:18.591253  9648 main2.cpp:15] warning test
7 E1214 20:28:18.592252  9648 main2.cpp:16] error test

C++开源日志类

标签:

原文地址:http://www.cnblogs.com/kuliuheng/p/5046101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!