1.起因

看到官方网站上的log4cpp的代码已经更新到了1.1.1,而我目前使用的1.0.3版本,所以想使用下最新版本。在使用过程中发现相对于老版本,新版本的变化还是比较大的,特写下此文记录下。

2.环境部署

其实新版本很早就已经发布了,只是很久没更新所以才会落后,新版本可以从 官方网站 上去下载。下载后将其解压缩到本地,可以看到它自带了默认的工程仅支持到VS2010。这样就很简单了,我们复制下msvc10,将其重命名为msvc11,就像下图一样

然后进入该文件夹,将msvc10.sln文件重命名为msvc11.sln,然后用VS2012打开。由于我们是用高版本打开低版本项目工程文件,因此在打开过程中会提示我们是否进行项目更新,选择全部更新即可,处理以后的街内容如下图

到此环境部署工作已经结束。

3.编译步骤

log4cpp的解决方案设置比较完整,基本不需要我们修改什么就可以直接编译成功。在这里我们只需要按照自己的需要编译动态库版本(log4cpp)或者静态库版本(log4cppLIB)即可,在对应的工程项目文件夹内会产生对应的库文件。
编译结束。

4.使用步骤

  • 4.1.提取必要的库文件
    我这里使用的时log4cpp动态库版本,因此提取了log4cpp.lib和log4cpp.dll两个文件,分别放在合适的地方
  • 4.2.提取头文件
    提取log4cpp/include内的所有文件,也可以用路径包含的方式指向该文件夹
  • 4.3.编写配置文件
    参考测试实例的配置文件,可以按照自己的需要写一份。我这里按照我的需要写了一份,大家可以点击这里进行下载,下载以后按照自己的需要进行修改下即可。
  • 4.4.编写使用代码
    参考实例中的代码,可以很容易的实现调用,我这里就不累述了。

    5.配置说明

  • 5.1.输出格式含义
    %c category;
    %d 日期;日期可以进一步的设置格式,用花括号包围,例如%d{%H:%M:%S,%l} 或者 %d{%d %m %Y %H:%M:%S,%l}。如果不设置具体日期格式,则如下默认格式被使用“Wed Jan 02 02:03:55 1980”。日期的格式符号与ANSI C函数strftime中的一致。但增加了一个格式符号%l,表示毫秒,占三个十进制位。
    %m 消息;
    %n 换行符,会根据平台的不同而不同,但对于用户透明;
    %p 优先级;
    %r 自从layout被创建后的毫秒数;
    %R 从1970年1月1日0时开始到目前为止的秒数;
    %u 进程开始到目前为止的时钟周期数;
    %x NDC。
  • 5.2.输出形式列表
    log4cpp::IdsaAppender // 发送到IDS或者
    log4cpp::FileAppender // 输出到文件
    log4cpp::RollingFileAppender // 输出到回卷文件,即当文件到达某个大小后回卷
    log4cpp::OstreamAppender // 输出到一个ostream类
    log4cpp::RemoteSyslogAppender // 输出到远程syslog服务器
    log4cpp::StringQueueAppender // 内存队列
    log4cpp::SyslogAppender // 本地syslog
    log4cpp::Win32DebugAppender // 发送到缺省系统调试器
    log4cpp::NTEventLogAppender // 发送到win 事件日志

    6.总结

    log4cpp的日志库是一个非常棒的三方开源项目,新版本对系统结构有了一个全新的设计。

    7.参考资料

    基于LGPL开源项目 Log4cpp安装与使用

VS2012编译log4cpp1.1.1版本的更多相关文章

  1. Win10系统下编译GDAL1.9.2版本

    环境说明: 1.Win10企业版.64位: 2.VS2012旗舰版: 3.GDAL1.9.2 GADL编译 1.解压GDAL压缩包至F:\GDAL\gdal-1.9.2: 2.设置GDAL编译后安装目 ...

  2. vs2012编译boost_1_54_0

    在原文上进行了修改,我的环境是VS2012 ,在编译 注意事项:Boost 请慎用!微软太坑爹...且直接使用GitHub上的exe文件也可以,特定版本的只能自己编译了....汗!!! 原文地址:ht ...

  3. vs2012编译Qwt

    主题:vs2012编译Qwt ------------------------------------------------------------------------- 参照网络地址: htt ...

  4. VS2012 编译 Assimp

    VS2012 编译 Assimp 环境: assimp-3.1.1Windows 7 64BitVisual Studio 2012CMake 2.8.12.1 注意: 在Windows中编译assi ...

  5. 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”

    原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...

  6. VS2012编译Snmp++ v3.2.25

    VS2012编译Snmp++ v3.2.25跟用VC6/VC2010等编译方法区别不大. 网上和教程上盛传的方式是把snmp++的cpp源文件和头文件都加到工程里,再编译.我觉得添加所有头文件到工程里 ...

  7. vs2012编译在win7 32位电脑和win xp电脑上运行的win32程序遇到的问题记录

    一.win7 32位电脑: vs2012编译的64位程序是没有问题的.但编译的32位程序在别的电脑(虚拟机模拟)出错: 感觉很无语,vs这么牛逼的东西,在设计时候都不考虑这些吗? 在自己电脑C:\Wi ...

  8. unity, unity默认的Arial字体在编译出的h5版本中不显示

    unity默认的Arial字体在编译出的h5版本中不显示.改用自己的字体可显示.

  9. centos7 源码编译安装TensorFlow CPU 版本

    一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...

随机推荐

  1. [国嵌攻略][061][2440LCD驱动设计]

    LCD初始化 1.引脚初始化 2.时序初始化 VBPD(vertical back porch):表示在一帧图像开始时,垂直同步信号以后的无效的行数 VFBD(vertical front porch ...

  2. [学习OpenCV攻略][003[初试牛刀——显示图片]

    cvLoadImage(路径) 加载指定路径的图片到内存 cvNamedWindow("窗口名称", 属性) 创建窗口,窗口名称用来被其他函数引用,属性:0表示窗口大小不变,CV_ ...

  3. 微信小程序实现淡入淡出效果(页面跳转)

    //目前小程序没有fadeIn(),fadeOut()方法所以还是本方法手写  <!--wxml--><!--蒙版(渐出淡去效果)--><view class=" ...

  4. UE4 unreliable 同步问题

    今天发现了一个问题,标记为unreliable的函数从来不执行,但是官方文档上的说明是只有在网络负载重时才不执行此类函数,哎哎哎.

  5. VUE之ECMAScript6(es6)

    es6:es:EMCAScript 6 (es2015)Emca:国际标准组织 1.常量和变量 const a = "hello" let:定义一个块级作用域的变量 需要先定义再使 ...

  6. MySQL Block Nested Loop and Batched Key Access Joins(块嵌套循环和批量Key访问连接)

    Block Nested-Loop and Batched Key Access Joins Batched Key Access (BKA) Join算法通过index和join buffer访问j ...

  7. oracle查看表空间下数据文件

    下面两个数据字典视图就知道了.查看有哪些表空间:select * from dba_tablespaces;查看有哪些数据文件在哪个表空间中:select * from dba_data_files; ...

  8. [知了堂学习笔记]_ajax的两种使用方式

    一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都 ...

  9. isinstance和issubclass、动态模块导入、异常处理

    一.isinstance和issubclass isinstance:判断某个对象是否是某个类的实例,返回True或Flase issubclass:判断某个类是否是某个类的子类. 例如: class ...

  10. CentOS 7 修改SSH端口号 和 ssh无法使用密码登录 和 查看pid 端口占用

    如下示例把SSH默认端口22改为122. 1 修改/etc/ssh/sshd_config文件 #Port #找到改行,如果还想继续使用该端口,可以把#去掉,如果使用新端口,可以默认不管 Port # ...