log4cplus c++ 日志库

log4cplus c++ 日志库

log4cplus-2.0.7.zip
visual studio 2015
win7 64 位

log4j 用于Java,log4cplus从它衍生而来,用于c++。

用于c++的日志库还有很多,如 log4cxx等,可以根据实际需求选择使用。

log4cplus 的地址:https://github.com/log4cplus/log4cplus

log4cplus是一种易于使用的C ++日志记录API,可提供线程安全,灵活且任意粒度的日志管理和配置控制。

例程

log4cplus 控制台 调用例程
https://download.csdn.net/download/wowocpp/72546107

参考

MFC log4cplus日志库的简单例子
https://liang.blog.csdn.net/article/details/120791423
项目主页:
https://sourceforge.net/p/log4cplus/wiki/Home/
https://github.com/wilx/log4cplus
https://sourceforge.net/p/log4cplus/wiki/CodeExamples/
https://blog.csdn.net/zzhongcy/article/details/42234719
https://my.oschina.net/lovecxx/blog/185951

log4cplus 使用方法 配置
https://my.oschina.net/lovecxx/blog/185951

1

log4cplus-2.0.7.zip

https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/
在这里插入图片描述

log4cplus-2.0.7\msvc14
目录下面
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
右键 设为启动项目
项目—> 重新生成

log4cplus-2.0.7\msvc14\Win32\bin.Debug_Unicode\

静态库
在这里插入图片描述

控制台 测试 工程

visual studio 2017 建立一个 控制台程序
在这里插入图片描述

在这里插入图片描述
把当前工程路径 放入 搜索include路径中,
这样 代码中 可以使用 include <> 尖括号的方式,
否则只能使用include " "的方式。

测试代码

#include "pch.h"

#include <iostream>
#include <log4cplus/helpers/loglog.h>
#include <log4cplus/logger.h>
#include <log4cplus/initializer.h>
#pragma comment(lib,"log4cplusSUD.lib")  

using namespace std;
using namespace log4cplus::helpers;

void printMsgs() {
	cout << "Entering printMsgs()..." << endl;

	LogLog::getLogLog()->debug(LOG4CPLUS_TEXT("This is a Debug statement..."));
	LogLog::getLogLog()->debug(
		log4cplus::tstring(LOG4CPLUS_TEXT("This is a Debug statement...")));

	LogLog::getLogLog()->warn(LOG4CPLUS_TEXT("This is a Warning..."));
	LogLog::getLogLog()->warn(
		log4cplus::tstring(LOG4CPLUS_TEXT("This is a Warning...")));

	LogLog::getLogLog()->error(LOG4CPLUS_TEXT("This is a Error..."));
	LogLog::getLogLog()->error(
		log4cplus::tstring(LOG4CPLUS_TEXT("This is a Error...")));

	cout << "Exiting printMsgs()..." << endl << endl;
}


int main() 
{
	log4cplus::Initializer initializer;
	printMsgs();

	cout << "Turning on debug..." << endl;
	LogLog::getLogLog()->setInternalDebugging(true);
	printMsgs();

	cout << "Turning on quiet mode..." << endl;
	LogLog::getLogLog()->setQuietMode(true);
	printMsgs();
	getchar();
	return 0;
}

运行结果

在这里插入图片描述

1

前言

之前接触的java项目中,日志操作基本上都是用的log4j,以前的c项目中也用过zlog。但是最近参与C++的一个项目,自己网上做了一些选型,所以自己记录一下。

选型比较:
log4cxx:Apache的产品,属于apache的子项目之一,由log4j移植过来的。移植过来的东西多数都有一个特点,那就是要依赖各种碗糕。log4cxx就需要依赖apr-utils,编译起来没那么直接,因此我放弃了它。
log4cpp:感觉上log4cpp和log4cplus大同小异,支持的功能也类似。上上一次更新是在2007年,不过在时隔五年之后的去年年底(2012年),它突然又更新了, 从1.0版提升到了1.1版,有点不容易,感觉诈尸了。另外,它也是由log4j移植过来的。
log4cplus:log4cplus究竟和log4cpp区别在哪,如果一定要作对比似乎log4cplus比log4cpp复杂了那么一点点。log4cplus的功能比log4cpp支持的功能更加全面,支持线程安全(log4cpp的代码里也做了一些对线程安全的保证,但官方没有介绍它支持线程安全,但是我自己在centos 6.2上面编译log4cpp后发现其不支持多线程,详情:http://sourceforge.net/p/log4cpp/feature-requests/34/。反而log4cplus宣称自己是线程安全的),另外log4plus更新非常频繁,对于一个有版本洁癖的人来说,这也是我选择它的原因,新版本提供了vc10的解决方案,还支持可选编译Unicode和非Unicode版本。
glog:这个就不介绍了,全称Google Glog, Google的东西一直比较让人放心。它比log4系列的库都要简单,不过它不支持用配置文件控制日志行为,这对我来说是个遗憾。
zlog: 使用C编写,支持window和linux,但是Linux下有些问题,所以放弃了。

log4系列的库前身都是log4j,log4j真是深藏功与名。以下通过log4plus来介绍一下它的基本用法和魅力。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值