linux下编译和安装log4cxx,ubuntu下log4cxx安装使用「建议收藏」

linux下编译和安装log4cxx,ubuntu下log4cxx安装使用「建议收藏」需要安装log4cxx,安装的过程中可是充满了坎坷。。。最大的问题是在makelog4cxx时,总是报undefinedXML什么什么的错误,查了一下也没解决了,然后把apr-utils删了重新装了一下就好了。。log4cxx现在是apache的一个项目,用来记录日志。看名字就知道,是给c++使用的。环境(在以下2个环境中进行验证测试):gcc(Ubuntu4.8.4-2ubuntu1~1…

大家好,又见面了,我是你们的朋友全栈君。

需要安装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

114f38cbae84419335b09f994f97b989.gif

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

dc6dd8e8dfee9774a319e5adb69b6cd6.gif

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/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151217.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • phpstorm激活码2022.01(注册激活)

    (phpstorm激活码2022.01)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • python encoding=utf-8_python以utf8打印字符串

    python encoding=utf-8_python以utf8打印字符串之前写程序时也出现过类似错误,每次解决了到第二次遇见又忘了具体方法,这次记录一下。一、字符编码问题先介绍一下字符编码问题1.ASCLL与GB2312由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。但是要处理中文显然一个字节是不够的,至…

  • 撸明白分布式事务(四)

    撸明白分布式事务(四)前言在分布式系统中,消息队列在服务端的架构中的地位非常重要,主要解决异步处理、系统解耦、流量削峰等场景。多个系统之间如果同步通信很容易造成阻塞,同时会将这些系统会耦合在一起。因此,引入了消息队列,一方面解决了同步通信机制造成的阻塞,另一方面通过消息队列进行业务解耦。简单的服务间调用引入mq如下图所示可靠事件模式可靠事件模式,通过引入可靠的消息队列,只要保证当前的可靠事件投递并且消息队列确保事件传递至少一次,那么订阅这个事件的消费者保证事件能够在自己的业务内被消费即可。这里,请读者思考,是否.

  • Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)[通俗易懂]

    Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)

  • php jquery教程下载,jquery 怎么下载

    php jquery教程下载,jquery 怎么下载下载jquery的方法:首先使用百度搜索“jQuery”;然后点击进入jQuery网站;最后找到适合开发的版本后进行下载即可。本教程操作环境:windows7系统、jquery3.2.1版,该方法适用于所有品牌电脑。下载jquery的方法:首先,打开您的浏览器,无论是什么浏览器都可以,只要可以连接上网络就行。使用百度搜索“jQuery”.您可以选择下图所示量项中的一项,并点击进入jQuery网站。…

  • Anaconda 安装Opencv库心得「建议收藏」

    Anaconda 安装Opencv库心得「建议收藏」1.anaconda安装按照提示一步一步来,基本没啥大问题,就是要记得添加环境变量,记得要换源,添加环境变量中,最好把以下四项都添上,有些人只添加了D:\anaconda3这一项,但是为了保险起见,最好四项都加上。如下图所示:2.**(1)**在安装opencv环节,我走了很多弯路,我是从进入清华大学镜像中心下载,地址(比官网快):https://pypi.tuna.tsinghua.ed…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号