tar –xvf  log4cplus-1.1.3-rc5.tar.gz
cd log4cplus-1.1.3-rc5
configure --prefix=/usr/local/log4cplus
make
make install

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/log4cplus/lib/

g++ -g  test_log4cplus.cpp -o process  -I/usr/local/log4cplus/include  -L/usr/local/log4cplus/lib -llog4cplus -lrt -lpthread

#include <iostream>
#include <log4cplus/logger.h>
#include <log4cplus/loggingmacros.h>
#include <log4cplus/configurator.h>
#include <iomanip>
#include <log4cplus/logger.h>
#include <log4cplus/fileappender.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/layout.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
using namespace log4cplus;
int main()
{
/* step 1: Instantiate an appender object */
SharedAppenderPtr _append(new ConsoleAppender());
_append->setName(LOG4CPLUS_TEXT("ConsoleAppender"));
/* step 2: Instantiate a layout object */
//std::string pattern = ;
std::auto_ptr<Layout> _layout(new PatternLayout(LOG4CPLUS_TEXT("%D{%m/%d/%y %H:%M:%S} - %m [%l]%n")));
/* step 3: Attach the layout object to the appender */
_append->setLayout(_layout);
/* step 4: Instantiate a logger object */
Logger _logger = Logger::getInstance(LOG4CPLUS_TEXT("test"));
/* step 5: Attach the appender object to the logger */
_logger.addAppender(_append);
/* step 6: Set a priority for the logger */
_logger.setLogLevel(WARN_LOG_LEVEL);
/* log activity */
LOG4CPLUS_DEBUG(_logger, "This is the FIRST log message");
LOG4CPLUS_WARN(_logger, "This is the SECOND log message");
LOG4CPLUS_TRACE(_logger, "This is" << " just a t" << "est." << std::endl);
LOG4CPLUS_DEBUG(_logger, "This is a bool: " << true);
LOG4CPLUS_INFO(_logger, "This is a char: " << 'x');
LOG4CPLUS_WARN(_logger, "This is a int: " << );
LOG4CPLUS_ERROR(_logger, "This is a long(hex): " << std::hex << );
LOG4CPLUS_FATAL(_logger, "This is a double: " << std::setprecision() << 1.2345234234);
return ;
}

最新文章

  1. Js制作点击输入框时默认文字消失的效果
  2. leetcode面试准备:Implement Trie (Prefix Tree)
  3. HTTP meta 设置方法
  4. PHP发红包程序
  5. view和activity的区别(转)
  6. 《图书管理系统——java》
  7. Java学习笔记14---this作为返回值时返回的是什么
  8. C. Queen Codeforces Round #549 (Div. 2) (搜索)
  9. Linux删除/boot后该如何恢复
  10. cocos2dx 3.3 笔记
  11. win10下Redis安装
  12. 『计算机视觉』Mask-RCNN_训练网络其三:训练Model
  13. OpenStack的八年之痒
  14. Python之路,第十九篇:Python入门与基础19
  15. 使用命名管道的OVERLAPPED方式实现非阻塞模式编程 .
  16. PI3HDX1204B
  17. Spring 3整合Quartz 2实现定时任务:动态添加任务
  18. python基础=== itertools介绍(转载)
  19. css画扇形按钮
  20. shell 字符串处理汇总(查找,替换等等)

热门文章

  1. spring源码学习之容器的扩展(二)
  2. [Array]122. Best Time to Buy and Sell Stock II(obscure)
  3. 获取MMSQL数据库表信息
  4. 【python之路35】FTP文件断电续传作业
  5. 纪念——代码首次达到近50K(更新:78.8K 2019行)
  6. jQuery 源码解析(二十九) 样式操作模块 尺寸详解
  7. iOS 动画队列—仿映客刷礼物效果
  8. pip安装依赖与生成依赖
  9. 阿里云SaaS生态战略发布:成就亿级营收独角兽
  10. SQL Server 存储过程详解