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/

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

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

(0)
上一篇 2022年6月20日 下午9:46
下一篇 2022年6月20日 下午10:00


相关推荐

  • origin2018多因子组柱状图_对比柱状图怎么做

    origin2018多因子组柱状图_对比柱状图怎么做如图1,数据包含两个分组列(X轴),A列表示小分组,B列表示大分组,C/D/E三列表示三个因子列,作为Y轴。同样的方式,可以在E轴后侧依次添加数据增加四,五,六等多个因子。图1数据输入格式按照上图方式输入数据后,选中数据Origin多因子柱状图教程(二)origin图表坐标轴下的分组表格是怎么添加的?…

    2026年4月18日
    4
  • linux下安装ffmpeg_linux 当前时间

    linux下安装ffmpeg_linux 当前时间linuxffmpeg安装ffmpeg安装不会吧这都22年了还有人问ffmpeg安装第一步我们先去下载资源包这里是4.4版本wgethttp://www.ffmpeg.org/releases/ffmpeg-4.4.tar.gz第二步解压资源包tar-zxvfffmpeg-4.4.tar.gz第3步创建安装目录我是安装在##我是安装在/www/server/ffmpeg下面mkdirffmpeg第4步返回解压目录cdffmpeg-4.

    2025年11月4日
    4
  • 分布式事务atomikos的原理_spring分布式事务

    分布式事务atomikos的原理_spring分布式事务atomikos+jta+JdbcTemplate依赖包(部分)事务等配置jta.properties(修改默认配置使用)测试,JdbcTemplate操作数据库@Transactional

    2022年8月5日
    4
  • 1分钱部署OpenClaw!4步搞定,全图形界面10分钟跑通专属AI助理

    1分钱部署OpenClaw!4步搞定,全图形界面10分钟跑通专属AI助理

    2026年3月13日
    2
  • Tarjan_com.pakdata.QuranMajeed

    Tarjan_com.pakdata.QuranMajeedTarjanTarjan是一种求有向图强联通分量的算法,是用dfs实现以及时间戳标记访问最短时间的.Tarjan算法中每个点都需要扩展边,为了存储方便,推荐使用邻接表.Tarjan算法的优势在于其灵活性,基础代码可以直接适用于多数情况.常见于dfs序.

    2025年7月15日
    3
  • Hybrid APP混合开发的一些经验和总结

    Hybrid APP混合开发的一些经验和总结HybridAPP混合开发的一些经验和总结转载至: http://www.cnblogs.com/yuanyingke/p/6060150.html1、混合开发概述Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势,

    2026年2月13日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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