log4cplus的安装与使用初步
1. 简单介绍
log4cplus是C++编写的开源的日志系统,The
purpose of this project is to port the excellentLog
for Java (log4j)logging library to C++。
log4cplus具有灵活、强大、使用简单、多线程安全的特点,实在是杂牌军、游击队的福音。
2. 安装使用(Linux)
log4cplus安装使用很easy。从其官网:http://log4cplus.sourceforge.net/ 下载最新版本号
执行:
tar xvzf log4cplus-x.x.x.tar.gz
cd log4cplus-x.x.x
./configure --prefix=/where/to/install
make
make install
在安装文件夹下生成include和lib两个文件夹。分别为头文件和库文件
使用:
g++ -o server /mnt/hgfs/work_vm/project/work_project/server/obj/main.o
-L../..//third/log4cplus/lib/ -L../..//third/boost/lib/-llog4cplus
-lpthread -I/mnt/hgfs/work_vm/project/work_project/server/include -I../..//third/log4cplus/include/-I../..//third/boost/include/
编译參数:
-L../..//third/log4cplus/lib/
-llog4cplus
-lpthread
-I../..//third/log4cplus/include/
3. 使用
log4cplus主要包含layout、appender、loglevel等内容。能够參考:
http://masterdog.bokee.com/153892.html
写的很nice
4. 包装
logcplus包装下用起来很方便,下面是我的包装。供參考
Log.h
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
//////////////////////////////////////////////////////////////////////////#if#define#include#include#include#include#include#include#include#include#include#includeusing using //日志封装#define#define#define#define#define//class{public: // bool // static staticprivate: Log(); virtual //log文件路径及名称 char char};#endif |
Log.cpp:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
//////////////////////////////////////////////////////////////////////////#include//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Logger"main_log");Log::Log(){ snprintf(_log_path, sizeof(_log_path), "%s", "../log"); snprintf(_log_name, sizeof(_log_name), "%s/%s.%s","log");}Log::~Log(){}Log&{ staticlog; return;}bool{ int"LOG_LEVEL", /* SharedAppenderPtrnew _append->setName("file); /* std::string"[%p]; std::auto_ptr<Layout>new /* _append->setLayout(_layout); /* /* Log::_logger.addAppender(_append); /* Log::_logger.setLogLevel(Log_level); return;} |
int Log_level = Main_config::instance().get_config().Read("LOG_LEVEL", 0);
Main_config是我自己包装的一个配置类(參考:http://blog.csdn.net/yfkiss/article/details/6802451)。通过读取配置设置log level。
使用:
#inlucde "Log.h"
程序初始化的时候:
// 打开日志
if (!Log::instance().open_log())
{
std::cout << "Log::open_log() failed" << std::endl;
return false;
}
然后使用NOTICE、FATAL等就能够打印日志到文件。
|
1
2
3
4
5
6
7
8
9
10
11
|
#include.... // if { std::cout"Log::open_log() return; }.....NOTICE("Server);FATAL("Server); |
转自:http://blog.csdn.net/yfkiss/article/details/6802422
log4cplus的安装与使用初步的更多相关文章
- php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中
php框架中的phalcon框架的安装,及初步认识,从表单提交简单的数据到数据库中 1.phalcon框架的安装: phalcon框架在windows本地安装可以利用wamp软件,安装之后可以查看对应 ...
- Microsoft Visual Studio 2010下log4cplus的安装,集成,测试
原文:http://blog.csdn.net/eclipser1987/article/details/6904301 log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工 ...
- drf安装与APIView初步分析
drf安装 1. pip install djangorestframework 2. 在settings文件中注册app : INSTALLED_APPS = [..., 'rest_framewo ...
- windows环境安装haproxy及初步配置负载均衡使用示例
安装HaProxy 首先需要下载windows环境下需要文件,这里下载的是一个别人编译好的一个文件,这里省去了编译的过程,使用的版本是haproxy-1.7.8. 下载后直接解压到对应的目录下.示例( ...
- node安装 教程 + git初步
我的系统是win8.1 64位 这个是对应的安装包:http://files.cnblogs.com/files/zxyun/node-v0.12.5-x64.zip 安装中有不懂可以参考下面的两 ...
- linux下安装nginx及初步认识
linux下安装配置nginx nginx:是一个高性能的反向代理服务器正向代理代理的是客户端,反向代理代理的是服务端. 这里以nginx-1.12.2版本为例子 1.首先去官网下载nginx-1.1 ...
- 全网最详细的Windows系统里Oracle 11g R2 Client客户端(64bit)安装后的初步使用(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Client(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1) 打开服务(cmd— ...
- 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)安装后的初步使用(图文详解)
不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1) 打开服务(cm ...
- 前端新手如何安装webstorm ,初步搭建react项目
下载安装webstorm:配置成功: 配置成功后就可以开启webstorm项目了.(存微信收藏..) 1:在webstorm下配置node环境: 2:完成之后: React官方脚手架地址: https ...
随机推荐
- noip2012疫情控制 题解
题目大意 给出一棵n个节点的树,根是1,要在除根节点以外的点建立检查点,使得从每条根到叶子的路径上都至少存在一个检查点.检查点由军队来建立.初始军队的位置是给定的,移动军队走一条边需要花费这条边的权值 ...
- 【推导】【线段树】hdu5929 Basic Data Structure
题意: 维护一个栈,支持以下操作: 从当前栈顶加入一个0或者1: 从当前栈顶弹掉一个数: 将栈顶指针和栈底指针交换: 询问a[top] nand a[top-1] nand ... nand a[bo ...
- HDU 5575 Discover Water Tank 并查集 树形DP
题意: 有一个水槽,边界的两块板是无穷高的,中间有n-1块隔板(有高度),现有一些条件(i,y,k),表示从左到右数的第i列中,在高度为(y+0.5)的地方是否有水(有水:k = 1),问最多能同时满 ...
- PAT甲级1089. Insert or Merge
PAT甲级1089. Insert or Merge 题意: 根据维基百科: 插入排序迭代,消耗一个输入元素每次重复,并增加排序的输出列表.每次迭代,插入排序从输入数据中删除一个元素,在排序列表中找到 ...
- mp4网页播放代码,有声音无图像的解决办法~
mp4网页播放代码,有声音无图像的解决办法~ 关于网页播放mp4格式的视频,找了一些插件,这里推荐一下video.js 官方网址:http://www.videojs.com/ github ...
- javascript:window.history.forward(1);
javascript:window.history.forward(1);[转] 接下来我们要讨论的方法以后退按钮本身为中心,而不是浏览器缓存.这儿有一篇文章Rewiring the Back But ...
- iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET
iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET Weex
- OC中NSLog函数输出格式详解
OC中NSLog函数输出格式详解 %@ 对象 • %d, %i 整数 • %u 无符整形 • %f 浮点/双字 • %x, %X 二进制整数 • %o 八进制整数 • %zu size_t • %p ...
- How to implement *All-Digital* analog-to-digital converters in FPGAs and ASICs
When we engineers look at the complexity of system design these days, we are challenged with crammin ...
- 借助JRebel使Tomcat支持热部署
JRebel是一个J2EE热部署的工具.使用它可以减少浪费8-18%的开发时间在项目的构建和部署上.虽然Java也提供了HotSpot的JVM,但是如果你修改的类中有方法名称变动的话,HotSpot就 ...