需要安装log4cxx,安装的过程中可是充满了坎坷。。。最大的问题是在make log4cxx时,总是报undefined XML什么什么的错误,查了一下也没解决了,然后把apr-utils删了重新装了一下就好了。。

log4cxx现在是apache的一个项目,用来记录日志。看名字就知道,是给c++使用的。

环境(在以下2个环境中进行验证测试):

gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4

gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-16)

log4cxx依赖于apache 的 apr 和 apr-util,所以安装顺序是: apr, apr-util, log4cxx。

1.软件包下载

apr: http://apr.apache.org/download.cgi

apr-util: http://apr.apache.org/download.cgi

log4cxx: http://logging.apache.org/log4cxx/download.html

2.安装apr

#tar xzvf apr-1.5.2.tar.bz2

#cd apr-1.5.2

#./configure --prefix=/usr/local/apr

#make

#make install

3.安装apr-util

#tar xzvf apr-util-1.5.4.tar.bz2

#cd apr-util-1.5.4

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

#make

#make install

4.安装log4cxx

#tar xzf apache-log4cxx-0.10.0.tar.gz

#cd apache-log4cxx-0.10.0

log4cxx直接make会报类似error: ‘memmove’ was not declared in this scope的错误,参考前人的工作,修改以下源文件:

src/main/cpp/inputstreamreader.cpp 添加 #include

src/main/cpp/socketoutputstream.cpp 添加 #include

src/examples/cpp/console.cpp 添加 #include #include

#./configure --prefix=/usr/local/log4cxx --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

#make

#make install

5.把编译后的库加载到环境变量中(实际使用和发布使用log4cx库需要其他更多的工作)

export LD_LIBRARY_PATH=/usr/local/apr/lib/:/usr/local/apr-util/lib/:/usr/local/log4cxx/lib/

6.测试代码

test.cpp

#include #include#include#include

using namespacestd;using namespacelog4cxx;using namespacelog4cxx::helpers;static const string CONF_LOG_FILE = "/home/fg/src/work/test/test.properties";

LoggerPtr logger(Logger::getRootLogger());int main(void)

{try{

PropertyConfigurator::configure(CONF_LOG_FILE);

LOG4CXX_INFO(logger,"Init() success.");

cout<< "success" <

}catch (Exception &) {

cout<< "log4cxx init error" <

}return 0;

}

test.cpp

test.properties文件的内容:

log4j.rootLogger=INFO, file

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=log.dat

log4j.appender.file.MaxFileSize=20MB

log4j.appender.file.MaxBackupIndex=10

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

test.properties

log4j.rootLogger=INFO, file

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=log.dat

log4j.appender.file.MaxFileSize=20MB

log4j.appender.file.MaxBackupIndex=10

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

7.编译:

g++ -o test0 test.cpp -L/usr/local/log4cxx/lib -llog4cxx -I/usr/local/log4cxx/include

运行:

./test

可以看到生成了log.dat文件,里面写入了LOG4CXX_INFO()输出的日志内容。

参考资料:

1.http://blog.chinaunix.net/uid-24512513-id-3195404.html

2.http://zipperary.com/2015/08/04/log4cxx/

linux下编译和安装log4cxx,ubuntu下log4cxx安装使用相关推荐

  1. linux apt-get找不到命令,ubuntu 下 apt /apt-get command not found 命令找不到

    简介:apt 命令在ubuntu下找不到.(针对云平台,等可联网的ubuntu  如果是虚拟机,请确认能否联网 (如是虚拟机且不能联网请参考其他文章,大致方向是先挂载系统镜像再安装)) (ps:一般的 ...

  2. linux双系统重启卡光标,Ubuntu 16.04安装完重启后黑屏,光标一直闪

    原文:https://blog.csdn.net/weixin_38533896/article/details/81023690 版权声明:本文为博主原创文章,转载请附上博文链接! 按照百度经验里面 ...

  3. linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境

    oracle的pro*c简介 安装oracle客户端 安装sqlpus 安装pro*c ORACLE的PRO*C曾经很流行,虽然现在不被推崇,但是已经比较成熟项目依然使用,所以打造自己的pro*c编译 ...

  4. linux终端安装cuda,Ubuntu下安装CUDA10.0以及问题

    tensorflow版本与cuda和cudnn的对应关系:https://tensorflow.google.cn/install/source 安装一定要查看CUDA要求的linux下的Driver ...

  5. linux 室内设计软件,功能强大!Ubuntu下安装最新免费3D室内设计软件

    原标题:功能强大!Ubuntu下安装最新免费3D室内设计软件 来自:Linux迷https://www.linuxmi.com/sweet-home-3d-6-4.html 免费3D室内设计软件Swe ...

  6. python (16) 如何在linux下安装lxml(pip安装,ubuntu下,centos下)

    首先需要明白lxml包依赖其他包,必须先安装其他包然后再安装lxml 安装python-pip:方便安装python的第三方包 [root@******/]# wget https://bootstr ...

  7. linux下给firefox安装flashplayer ubuntu下的cp,rm命令

    首先去官网下载适用于linux的flash player 下载的是.tar.gz版本 接着进行解压,ubuntu下的解压命令使用的是   tar zxvf  (名称).tar.gz 解压过后需要 (1 ...

  8. linux ubuntu安装pip3,ubuntu 下 安装pip3 的坑

    如果在 ubuntu 下安装包,分在让能想到如下命令行操作: zhangji16@zhangji16vm:~$ sudo apt-get install python3-pip [sudo] zhan ...

  9. gamma软件linux安装图示,Ubuntu下安装GAMMA过程(转)

    官方那个说明写的实在是太乱来,对于我这样到Linux新手看起来实在是费力,折腾来半天,搞定来,写下来以备以后查阅. 安装软件步骤如下: 1. 解压缩Gamma软件压缩后的rar文件: 2. 安装FFT ...

  10. linux apktool使用教程,简单介绍ubuntu下apktool的使用与配置

    apktool 使用 1.解包(反编译):apktool d -f xxx.apk -o xxx 2.二次打包: apktool b xxx -o xxx.apk 3.签名 java -jar sig ...

最新文章

  1. hive窗口函数分组排序并取第一个值_Hive(七)Hive分析窗口函数
  2. 【进展】不只是感谢信,物联网平台哪家强?冰箱运行监测系统项目重启
  3. 使用matlab模拟、检验和估计泊松过程
  4. (chap1 网络基础知识)一些概念
  5. 如何查看 phtml文件 并有代码颜色提示
  6. 启明云端分享|ESP32在开发环境时,环境搭建及应用、软件平台时常遇到的问题答疑(FAQ)
  7. 群晖docker_利用群晖docker搭建Minecraft服务器:图形界面操作,傻瓜式教程(附官方服务器端地址)_NAS存储...
  8. php 抓取页面图片,php 抓取网页内容与图片的方法
  9. 区块链系列教程之:比特币的世界
  10. 可再生能源建设提速 风电光伏业高景气可期
  11. linux-redhat替换yum网络源为centos网络源
  12. 【MySQL】PREPARE 的应用
  13. MAC算法原理与常用实现
  14. PictureBox滚动条、鼠标中轴滚动
  15. 原 SpringFramework核心技术五:Spring AOP API
  16. nginx 过滤post报文 防火墙_详解nginx限制IP恶意调用短信接口处理方法
  17. Git 如何撤回某一次提交
  18. 【直播预告】相机模型与标定——Real world超级公开课
  19. Box Cox Transformation
  20. ESP32S2(12K)-DS18B20数码管显示温度

热门文章

  1. Power BI:数据清洗
  2. 一个例子说明贝叶斯定理
  3. 自学总结:非科班转行前端拿到字节跳动 offer?看我是如何一步一步做到的?
  4. 手机如何快速转换图片格式?改图片格式手机如何操作?
  5. java中config是什么意思_在计算机的命令中Config是什么意思啊?
  6. 布局之space-evenly兼容性问题
  7. Pytorch构建Transformer实现英文翻译
  8. 香橙派PC 2(H5)配置备忘录
  9. 【Python系列】eval 函数
  10. T-BOX,OBD区别