log4cpp的初步使用
(1)下载log4cpp的工程,编译生成lib文件和dll库
下载路径为:http://sourceforge.net/projects/log4cpp/files/latest/download
如果使用VS2005编译,直接打开msvc7.sln工程,转成VS2005工程,删除测试工程,如下所示:

(2)添加头文件
#include "log4cpp/Category.hh" 
#include "log4cpp/CategoryStream.hh"    
#include "log4cpp/FileAppender.hh"    
#include "log4cpp/BasicLayout.hh"    
#include "log4cpp/Priority.hh"
(3)初始化代码
// 1实例化一个layout 对象   
 log4cpp::Layout* layout =  new log4cpp::BasicLayout();    
 // 2. 初始化一个appender 对象    
 log4cpp::FileAppender* appender = new log4cpp::FileAppender("FileAppender", path);    
 // 3. 把layout对象附着在appender对象上    
 appender->setLayout(layout);    
 // 4. 实例化一个category对象    
 log4cpp::Category& logcat = log4cpp::Category::getInstance(CATRGORY_NAME);    
 // 5. 设置additivity为false,替换已有的appender    
 logcat.setAdditivity(false);    
 // 5. 把appender对象附到category上    
 logcat.setAppender(appender);    
 // 6. 设置category的优先级,低于此优先级的日志不被记录    
 switch (level)    
 {    
 case DebugLevel:    
  logcat.setPriority(log4cpp::Priority::DEBUG);    
  break;    
 case InfoLevel:    
  logcat.setPriority(log4cpp::Priority::INFO);    
  break;    
 case WarnLevel:    
  logcat.setPriority(log4cpp::Priority::WARN);    
  break;    
 case ErrLevel:    
  logcat.setPriority(log4cpp::Priority::ERROR);    
  break;    
 default:    
  logcat.setPriority(log4cpp::Priority::INFO);    
  break;    
 }
(4)写日志代码
logcat.info("Program info which cannot be wirten");   
 logcat.debug("This debug message will fail to write");    
 logcat.alert("Alert info");
log4cpp的初步使用的更多相关文章
- 移动端之Android开发的几种方式的初步体验
		目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ... 
- CSharpGL(29)初步封装Texture和Framebuffer
		+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ... 
- Android自定义View初步
		经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ... 
- 初步认识Node 之Node为何物
		很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了. Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ... 
- [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)
		[入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date 周六 10 一月 2015 By 钟谢伟 Category website develop ... 
- 基于C/S架构的3D对战网络游戏C++框架_05搭建系统开发环境与Boost智能指针、内存池初步了解
		本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ... 
- Azure底层架构的初步分析
		之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ... 
- CozyRSS开发记录14-RSS源管理初步完工
		CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添 ... 
- 初步了解CPU
		了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ... 
随机推荐
- BZOJ3231(矩阵连乘,稍有点复杂)
			题目:3231: [Sdoi2008]递归数列 题意: 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 ... 
- 关于SOQL(一)
			SOQL 是Salesforce中的查询语言,他的全称是Salesforce Object Query Language. 从字面上就能够看出,这个语言是一种基于对象的查询语言. 在Salesforc ... 
- CAEmitterLayer 粒子发射器
			在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayer.CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果. CAEm ... 
- BZOJ 1355: [Baltic2009]Radio Transmission( kmp )
			自己YY一下可以发现answer = n - fail[ n ] ------------------------------------------------------------------ ... 
- Django forms 关于select和checkbox设置初始选中值及让前端选中指定值
			Django的forms和models一样很牛逼.他有两种功能,一是生成form表单,还有就是form表单的验证. 这里主要说一下生成form表单时经常用到的需要设置 初始值 / 默认值 的情况. 1 ... 
- Jsunpack
			http://www.baidu.com/#wd=jsunpack&rsv_bp=0&tn=baidu&rsv_spt=3&ie=utf-8&rsv_sug3= ... 
- hibernate HQL查询   2.2
			hql(都要在事务中完成)session.beginTransaction();session.getTransaction().commit(); session.beginTransaction( ... 
- c++ 实现将数字转换为中文数字输出
			实现如下函数: void printInChinese(int num); 这个函数输入一个小于100000000(一亿)的正整数,并在屏幕上打印这个数字的中文写法. 例如: 17 -> 一十七 ... 
- CMake学习小结
			假定有vegagis工程,工程的目录结构如下: #--vegagis# |--src 源文件目录# |--gui 界面工程,输出类型:dll,依赖于QT的QtCore.QtGui.QtXml ... 
- ARPU_百度百科
			ARPU_百度百科 ARPU 
