linux下编译和安装log4cxx,ubuntu下log4cxx安装使用
需要安装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安装使用相关推荐
- linux apt-get找不到命令,ubuntu 下 apt /apt-get command not found 命令找不到
简介:apt 命令在ubuntu下找不到.(针对云平台,等可联网的ubuntu 如果是虚拟机,请确认能否联网 (如是虚拟机且不能联网请参考其他文章,大致方向是先挂载系统镜像再安装)) (ps:一般的 ...
- linux双系统重启卡光标,Ubuntu 16.04安装完重启后黑屏,光标一直闪
原文:https://blog.csdn.net/weixin_38533896/article/details/81023690 版权声明:本文为博主原创文章,转载请附上博文链接! 按照百度经验里面 ...
- linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境
oracle的pro*c简介 安装oracle客户端 安装sqlpus 安装pro*c ORACLE的PRO*C曾经很流行,虽然现在不被推崇,但是已经比较成熟项目依然使用,所以打造自己的pro*c编译 ...
- linux终端安装cuda,Ubuntu下安装CUDA10.0以及问题
tensorflow版本与cuda和cudnn的对应关系:https://tensorflow.google.cn/install/source 安装一定要查看CUDA要求的linux下的Driver ...
- linux 室内设计软件,功能强大!Ubuntu下安装最新免费3D室内设计软件
原标题:功能强大!Ubuntu下安装最新免费3D室内设计软件 来自:Linux迷https://www.linuxmi.com/sweet-home-3d-6-4.html 免费3D室内设计软件Swe ...
- python (16) 如何在linux下安装lxml(pip安装,ubuntu下,centos下)
首先需要明白lxml包依赖其他包,必须先安装其他包然后再安装lxml 安装python-pip:方便安装python的第三方包 [root@******/]# wget https://bootstr ...
- linux下给firefox安装flashplayer ubuntu下的cp,rm命令
首先去官网下载适用于linux的flash player 下载的是.tar.gz版本 接着进行解压,ubuntu下的解压命令使用的是 tar zxvf (名称).tar.gz 解压过后需要 (1 ...
- linux ubuntu安装pip3,ubuntu 下 安装pip3 的坑
如果在 ubuntu 下安装包,分在让能想到如下命令行操作: zhangji16@zhangji16vm:~$ sudo apt-get install python3-pip [sudo] zhan ...
- gamma软件linux安装图示,Ubuntu下安装GAMMA过程(转)
官方那个说明写的实在是太乱来,对于我这样到Linux新手看起来实在是费力,折腾来半天,搞定来,写下来以备以后查阅. 安装软件步骤如下: 1. 解压缩Gamma软件压缩后的rar文件: 2. 安装FFT ...
- linux apktool使用教程,简单介绍ubuntu下apktool的使用与配置
apktool 使用 1.解包(反编译):apktool d -f xxx.apk -o xxx 2.二次打包: apktool b xxx -o xxx.apk 3.签名 java -jar sig ...
最新文章
- hive窗口函数分组排序并取第一个值_Hive(七)Hive分析窗口函数
- 【进展】不只是感谢信,物联网平台哪家强?冰箱运行监测系统项目重启
- 使用matlab模拟、检验和估计泊松过程
- (chap1 网络基础知识)一些概念
- 如何查看 phtml文件 并有代码颜色提示
- 启明云端分享|ESP32在开发环境时,环境搭建及应用、软件平台时常遇到的问题答疑(FAQ)
- 群晖docker_利用群晖docker搭建Minecraft服务器:图形界面操作,傻瓜式教程(附官方服务器端地址)_NAS存储...
- php 抓取页面图片,php 抓取网页内容与图片的方法
- 区块链系列教程之:比特币的世界
- 可再生能源建设提速 风电光伏业高景气可期
- linux-redhat替换yum网络源为centos网络源
- 【MySQL】PREPARE 的应用
- MAC算法原理与常用实现
- PictureBox滚动条、鼠标中轴滚动
- 原 SpringFramework核心技术五:Spring AOP API
- nginx 过滤post报文 防火墙_详解nginx限制IP恶意调用短信接口处理方法
- Git 如何撤回某一次提交
- 【直播预告】相机模型与标定——Real world超级公开课
- Box Cox Transformation
- ESP32S2(12K)-DS18B20数码管显示温度