c++ 开源日志库选择

摘要:
选择为glog、log4cplus、log4cpp和log4cxx的liblogger目前可以使用glog,它易于使用,性能良好。需要进一步测试。如果有不满意的函数,将使用log4cplus。功能非常全面,但稍微复杂一些。另外两个三年前没有更新。我不喜欢他们。我还没准备好使用它们。由于担心麻烦,没有下载测试。GoogleGlog是C++语言的应用程序级日志框架,提供C++风格的流操作和各种帮助宏。

liblogger

待选为 glog、log4cplus、log4cpp、log4cxx

目前准备使用glog,使用方便,性能也不错,待进一步试验,如果有不能满足的功能就转用 log4cplus,功能很全面,不过稍复杂些。

其它两个都是三年前就没更新,没好感,暂不准备使用。

1.log4cplus

最新版本:1.1.0 2012-03-11

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

功能全面,使用稍复杂。

代码示例:

#include <log4cplus/layout.h>
#include <log4cplus/configurator.h>
#include <iomanip>
SharedAppenderPtr pFileAppender(new FileAppender("testlog.log"));
Logger pTestLogger = Logger::getInstance("LoggerName");
pTestLogger.addAppender(pFileAppender);
sprintf(a,"%d",i);

LOG4CPLUS_WARN(pTestLogger, "This is a <Warn> log message..." << a );

2.log4cxx

最新版本:0.10.02008-04-03

下载地址:http://logging.apache.org/log4cxx/download.html

编译很麻烦新的版本0.10.0需要使用Apache的产品Ant来编译,而Ant又需要JDK。。。

怕麻烦,没有下载测试。
3.glog

最新版本:0.3.22012-1-12

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

使用方便,性能也不错。

GoogleGlog是一个C++语言的应用级日志记录框架,提供了C++风格的流操作和各种助手宏。

Googleglog是一个基于程序级记录日志信息的c++库,编程使用方式与c++stream操作类似

代码示例:

#include <glog/logging.h>
google::InitGoogleLogging(argv[0]);
google::SetLogDestination(google::INFO,"./myInfo_");

LOG(INFO) << "This is a <Warn> log message..." << i;

4.Log4cpp

最新版1.0.x2007-09-03

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

感觉 跟 log4cplus类似,结构稍简单些,不过代码也不少写。

#include <log4cpp/Category.hh>
#include <log4cpp/PropertyConfigurator.hh>
#include <log4cpp/NDC.hh>
#include <log4cpp/FileAppender.hh>
#include <log4cpp/BasicLayout.hh>
log4cpp::Layout* layout = new log4cpp::BasicLayout();
log4cpp::Appender* appender = new log4cpp::FileAppender("FileAppender", "./test_log4cpp1.log");
appender->setLayout(layout);
log4cpp::Category& warn_log = log4cpp::Category::getInstance("mywarn");
warn_log.setAdditivity(false);
warn_log.setAppender(appender);
warn_log.setPriority(log4cpp::Priority::WARN);

warn_log.critStream() << "This is a <Warn> log message..." << i;

5.liblogger

一款为C++开发的日志工具,支持输出到文件、网络以及控制台

参考地址:http://sourceforge.net/projects/liblogger/

免责声明:文章转载自《c++ 开源日志库选择》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序1rpx border ios真机显示不全问题景观分析工具:arcgis中patch analysis模块下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

LOG EXPLORER FOR SQL SERVER 使用

引用:https://www.cnblogs.com/whitney/archive/2008/08/22/1273879.html 软件下载:https://pan.baidu.com/s/1KnwGfzSgce-oDAj3miGSNg 本次的使用的VER:4.2 Demo; 数据库:SQL2005;目的:恢复被删除的数据。所以,只略说了恢复数据的步骤。...

[原]零基础学习SDL开发之在Android使用SDL2.0渲染PNG图片

在上一篇文章我们知道了如何在android使用SDL2.0来渲染显示一张bmp图,但是如果是一张png或者一张jpg的图,那么还能显示成功么?答案是否定的 我们需要移植SDL_image库来支持除bmp之外的图片格式。 一、移植SDL_image库: 使用如下命令,从SDLMercurial获取SDL_image的源码: hg clone https://...

ESlint中console.log报错问题

ESlint中console.log报错问题 由于ESlint规范化,导致console.log的使用也会报错,下面是设置允许console.log控制台输出 描述:打开 package.json 文件,找到 rules 属性,加入以下代码 // rules这个属性默认是有的,如果没有那就自己添加至 eslintConfig 属性下 "rules": {...

Oracle学习笔记—归档模式

什么是归档模式 Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复...

WebSocket实现前后端通讯

WebSocket实现前后端通讯         长安如梦里,何日是归期。   简介:我们上线了一个商城项目,移交运营团队使用之后,他们要求商城有新订单来的时候同时加上声音提示,让她们可以及时知道有单来了。我这边想了想,这个需求是在后端完成还是前端完成,但是仔细一想,无论是在前端还是后端完成都一样,需求注定甩不出去了,因为这个商城的后台管理没有前端工程师,...

Monit:开源服务器监控工具

Monit是一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序、插件或者库。 Monit可以监控服务器进程状态、HTTP/TCP状态码、服务器资源变化、文件系统变动等等,根据这些变化,可以设定邮件报警、重启进程或服务。易...