1、简介

log4cplus是著名的log4家族的c++版本,其它的有log4j、log4net等,具体介绍请访问官网:https://sourceforge.net/p/log4cplus/wiki/Home/。

2、下载和编译

2.1 下载网址 

官方下载网址:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/。

2.2 目录结构 

下载的是源代码,根据需要自行编译。目录结构,大概就是这样的:

2.3 使用VS 2019打开项目

 msvc14文件夹中就是vs的项目结构,使用vs2019打开文件夹中的项目,Tests是测试的例子,这个很有用,主要是使用示例,里面的代码可以拿来少许修改就能用;log4cplus就是主项目,编译后可以使用。

2.4 编译

可以编译生成4个版本的dll,分别是Debug、Debug_Unicode、Release、Release_Unicode这4个版本、这4个版本主要是"字符集"属性不同,可以右击项目----属性----配置属性----高级----字符集查看具体指。

3、使用

3.1 创建新项目 

新建c++控制台项目

3.2 修改项目属性

配置属性---C/C++---常规---附加包含目录,添加上面编译生成的dll文件所在目录;

配置属性---链接器---常规---附加库目录,添加上面编译生成的dll文件所在目录;

配置属性---链接器---输入---附加依赖项,添加上面编译生成的lib文件路径;

配置属性---高级---字符集,一定要和上满编译的字符集属性一样。

log4cplus.properties属性文件内容:

log4cplus.threadPoolSize = 2#R:在下面第13行开始定义log4cplus.rootLogger=INFO, STDOUT, Rlog4cplus.logger.test.a.b.c=WARNlog4cplus.logger.filelogger=WARN, Rlog4cplus.additivity.filelogger=FALSElog4cplus.appender.STDOUT=log4cplus::ConsoleAppenderlog4cplus.appender.STDOUT.layout=log4cplus::PatternLayoutlog4cplus.appender.STDOUT.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%nlog4cplus.appender.R=log4cplus::RollingFileAppenderlog4cplus.appender.R.File=output_${ENV_VAR}.log#log4cplus.appender.R.MaxFileSize=5MBlog4cplus.appender.R.MaxFileSize=500KBlog4cplus.appender.R.MaxBackupIndex=5log4cplus.appender.R.layout=log4cplus::PatternLayoutlog4cplus.appender.R.layout.ConversionPattern=%d{%m/%d/%y %H:%M:%S} [%t] %-5p %c{2} %%%x%% - %m [%l]%n


#include <log4cplus/loggingmacros.h>#include <log4cplus/configurator.h>#include <log4cplus/helpers/loglog.h>#include <log4cplus/helpers/stringhelper.h>#include <log4cplus/helpers/fileinfo.h>#include <log4cplus/loggingmacros.h>#include <log4cplus/initializer.h>#include <iostream>using  std::endl;using  log4cplus::tcout;using log4cplus::helpers::LogLog;using log4cplus::Logger;using log4cplus::PropertyConfigurator;using log4cplus::tistringstream;using log4cplus::helpers::Properties;intmain(){    //tcout << LOG4CPLUS_TEXT("Entering main()...") << endl;    log4cplus::Initializer initializer;    LogLog::getLogLog()->setInternalDebugging(true);    Logger root = Logger::getRoot();    try {        PropertyConfigurator::doConfigure(            "log4cplus.properties");        Logger fileCat = Logger::getInstance(LOG4CPLUS_TEXT("filelogger"));        LOG4CPLUS_WARN(root, LOG4CPLUS_TEXT("Testing...."));        LOG4CPLUS_WARN(root, LOG4CPLUS_TEXT("Writing messages to log...."));        for (int i = 0; i < 10000; ++i)            LOG4CPLUS_WARN(fileCat, LOG4CPLUS_TEXT("This is a WARNING...")                << i);        // Test that DOS EOLs in property files get removed.#define TEST_TEXT LOG4CPLUS_TEXT ("this is a test with DOS EOL-->")        tistringstream propsStream(            LOG4CPLUS_TEXT("text=") TEST_TEXT LOG4CPLUS_TEXT("\r\n"));        Properties props(propsStream);        LOG4CPLUS_ASSERT(root,            props.getProperty(LOG4CPLUS_TEXT("text")) == TEST_TEXT);    }    catch (...) {        //tcout << LOG4CPLUS_TEXT("Exception...") << endl;        LOG4CPLUS_FATAL(root, LOG4CPLUS_TEXT("Exception occured..."));    }     int i = 0;    //std::cin >> i;    //std::basic_ostream<tchar> abc();    //log4cplus::tcout << LOG4CPLUS_TEXT("Exiting main()...") << endl;    return 0;}





©著作权归作者所有:来自51CTO博客作者mb6054360584d89的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 网站加载页面(HTML+CSS+JS,简易版)
  2. 210406 类数组 获取遍历DOM元素 向元素添加文本 获取元素的自定
  3. 已安装nginx动态添加模块
  4. spring工程搭建
  5. Vue:实例演示,v-if,v-for,v-model,v-bind,v-on,计算属性和侦听器
  6. 210402 JavaScript 作用域 闭包 原型 构造函数
  7. Vue的v-bind,v-on, v-model,v-if,v-for,计算属性和侦听器属性 --
  8. java中的类型擦除type erasure
  9. Spring注解 @Resource和@Autowired比较

随机推荐

  1. Android编译环境安装
  2. H264解码器源码(Android 1.6 版)
  3. Android NDK的入门学习
  4. 编译Android(安卓)2.3.1 源代码心得
  5. LAYOUT SHOW
  6. Develop--Training(一)Getting Started
  7. Android(安卓)Studio下Jni开发简单demo
  8. Android SDK文档离线打开慢问题
  9. Android webview与js 交换JSON对象数据
  10. 常用Android快速开发框架