当前位置: 首页 > news >正文

(转)Linux下编译安装log4cxx

Linux下编译安装log4cxx

一个项目的服务器端在Linux平台下,用到了开源日志库log4cxx,这个库是apache项目的一个子库。功能很不错。下面记录下它的编译和安装过程。

log4cxx的官方下载地址是http://logging.apache.org/log4cxx/index.html ,我用的是0.10.0版本。

为了编译它,还需要两个辅助库,apr,和apr-util,可以在这里下载http://apr.apache.org/download.cgi ,我用的版本分别是apr-1.3.8.tar.gz 和apr-util-1.3.9.tar.gz 。

第一步安装apr-1.3.8,顺序不能错,它必须首选安装

$tar zxvf apr-1.3.8.tar.gz

$cd apr-1.3.8

$./configure --prefix=/usr/local

$make

$su root

$make install

然后安装apr-util-1.3.9

$tar zxvf apr-util-1.3.9.tar.gz

$cd apr-util-1.3.9

$./configure --prefix=/usr/local --with-apr=/usr/local/apr

$make

$su root

$make install

configure选项 --with-apr=/usr/local/apr指定apr库的位置

最后就可以安装log4cxx了

$tar zxvf apache-log4cxx-0.10.0.tar.gz

$cd apache-log4cxx-0.10.0

$configure --prefix==/usr/local

$make

$su root

$make install

因为编译成的是共享库,最后还要设置下搜索目录,编辑~/.bashrc,添加下面两行

LD_LIBRARY_PATH=/usr/local/lib

export LD_LIBRARY_PATH

OK,至此log4cxx就安装完毕了。

最后写个程序,测试下。

#include <log4cxx/logger.h>
#include <log4cxx/logstring.h>
#include <log4cxx/propertyconfigurator.h>

int main(int argc, char* argv[])
{
    using namespace log4cxx;

    // 读取配置文件
    PropertyConfigurator::configure("log4cxx.cfg");

    // 建立两个logger
    LoggerPtr logger1 = Logger::getLogger("TraceYourMama");
    LoggerPtr logger2 = Logger::getLogger("Patch");

    LOG4CXX_TRACE(logger1, "跟踪");
    LOG4CXX_WARN(logger1, "警告");
    LOG4CXX_DEBUG(logger1, "调试");
    LOG4CXX_ASSERT(logger1, false, "断言");
    LOG4CXX_FATAL(logger1, "致命");

    LOG4CXX_TRACE(logger2, "跟踪");
    LOG4CXX_ERROR(logger2, "错误");
    return 0;
}

编译链接

$g++ -o main main.cpp -llog4cxx

OK,打完手工。

 

 

最后安装log4cxx的时候会有错误,缺少头文件,根据错误的文件添加即可

转载于:https://www.cnblogs.com/dreamforever/p/3782855.html

相关文章:

  • Spring上传多文件并供下载
  • 解决Android LogCat 输出乱码的问题(转)
  • 原有vue项目接入typescript
  • Android软件开发-AnalogClock、DigitalClock
  • springboot分环境打包(maven动态选择环境)
  • CSS3 动画效果带来的bug
  • PI Square中文论坛: PI SDK 开发中级篇| PI Square
  • 解密回文——栈
  • Maven Docker部署
  • Django(六)模型(model)系统 -- 常用查询语法及进阶
  • Yii php 环境配置on ubuntu 12.04
  • 带动画的登录页面
  • JAVA中equal()和==的区别
  • 区块链软件公司:区块链技术能带来什么
  • Android:让WebView支持input type=”file”…元素
  • hexo+github搭建个人博客
  • 【391天】每日项目总结系列128(2018.03.03)
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Apache的基本使用
  • AWS实战 - 利用IAM对S3做访问控制
  • golang 发送GET和POST示例
  • Hibernate【inverse和cascade属性】知识要点
  • input的行数自动增减
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaScript创建对象的四种方式
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • laravel with 查询列表限制条数
  • Vue全家桶实现一个Web App
  • Vue组件定义
  • 从伪并行的 Python 多线程说起
  • 大数据与云计算学习:数据分析(二)
  • 大主子表关联的性能优化方法
  • 关于for循环的简单归纳
  • 开发基于以太坊智能合约的DApp
  • 前嗅ForeSpider教程:创建模板
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用API自动生成工具优化前端工作流
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • # include “ “ 和 # include < >两者的区别
  • #Spring-boot高级
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (42)STM32——LCD显示屏实验笔记
  • (day 12)JavaScript学习笔记(数组3)
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (四)linux文件内容查看
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)Linq学习笔记
  • (转)程序员疫苗:代码注入
  • .Net MVC4 上传大文件,并保存表单
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET中 MVC 工厂模式浅析