今天领导交给我一个任务:把log4cxx库在Redhat系统上面安装起来

首先。我得到信息,安装这个库一共须要三个软件

apr-1.4.6.tar.gz

apr-util-1.4.1.tar.gz

apache-log4cxx-0.10.0.tar.gz

安装顺序是从上到下的,为什么,由于后者的安装依赖前者。

我整理了一下思路,有例如以下几个问题:

1.安装log4cxx库到哪个文件夹?

2.安装好之后怎么用?

我首先想到的是网上查资料,结果非常多结果都显示:

1.针对问题1,99%的都安装在/usr/local文件夹下(我的权限是普通用户。安装在/usr/local文件夹下须要root权限,我顿时打了个寒战。万一我安装错了,server暴了怎么办)

2.针对问题2,由于99%的都是安装在/usr/local文件夹下。结果就是随便提供一个測试程序。直接来g++ test.cpp 其它简单參数

我想了又想,终于依照第一步做了(在此之前我向领导要了管理员权限),安装好后。没什么问题,只是。接下来,在进行敲代码測试的时候,关于log4cxx库的文件都找不到。我崩溃了。这和网上说的不一样啊。

遇到了一些挫折。终于我是搞出来了,就来详细说说我的步骤吧。

1.把三个压缩包放置到一个你喜欢的文件夹下。比方/home/mac/log4cxx这个文件夹下

2.在/home/mac/log4cxx文件夹下解压三个压缩包得到三个文件夹(解压缩命令tar zxvf 你的目标)

3.在/home/mac/log4cxx文件夹下新建三个文件夹apr apr-util log4cxx作为三个包的安装文件夹(运行make install时的安装文件夹)

4.首先进入apr-1.4.6文件夹运行./configure --prefix=/home/mac/log4cxx/apr配置apr包的安装文件夹为/home/mac/log4cxx/apr

5.运行make

6.运行make install

7.进入apr-util-1.4.1文件夹运行./configure --prefix=/home/mac/log4cxx/apr-util --with-apr=/home/mac/log4cxx/apr意义和上面一步一样,只是多了个依赖关系

8.运行make

9.运行make install

10.进入apache-log4cxx-0.10.0文件夹运行./configure --prefix=/home/mac/log4cxx/log4cxx --with-apr=/home/mac/log4cxx/apr --with-apr-util=/home/mac/log4cxx/apr-util意义和上面一步一样,依赖关系又体现了

11.运行make

12.运行make install

13.此时使用命令ls 浏览新建的三个目录apr apr-util log4cxx,会发现里面有一些include啊。lib啊之类的目录

14.由于測试程序要用到log4cxx的库文件,所以还须要一步。运行vi /home/mac/.bashrc 在里面加入两句

LD_LIBRARY_PATH=/home/mac/log4cxx/log4cxx/lib

export LD_LIBRARY_PATH 然后保存

15.运行source /home/mac/.bashrc使刚刚做的变动生效

16.编写一个測试程序main.cpp

#include <log4cxx/logger.h>
#include <log4cxx/logstring.h>
#include <log4cxx/propertyconfigurator.h> int main(int argc, char* argv[])
{
using namespace log4cxx; // 读取配置文件
PropertyConfigurator::configure("conf.log"); // 建立两个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;
}

17.编写文件conf.log这个log4cxx配置文件

log4j.rootLogger=TRACE, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=./ZW.log
log4j.appender.logfile.MaxFileSize=100KB
log4j.appender.logfile.MaxBackupIndex=10
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d [%t] %-5p %c - %m%

18.运行g++ -I/home/mac/log4cxx/log4cxx/include -L/home/mac/log4cxx/log4cxx/lib -llog4cxx main.cpp

19.会生成a.out文件

20.运行./a.out 终端输出

2014-07-21 23:14:06,735 [0xb7fe4700] TRACE TraceYourMama - trace
2014-07-21 23:14:06,736 [0xb7fe4700] WARN TraceYourMama - warn
2014-07-21 23:14:06,736 [0xb7fe4700] DEBUG TraceYourMama - debug
2014-07-21 23:14:06,736 [0xb7fe4700] ERROR TraceYourMama - assert
2014-07-21 23:14:06,736 [0xb7fe4700] FATAL TraceYourMama - fatal
2014-07-21 23:14:06,736 [0xb7fe4700] TRACE Patch - trace
2014-07-21 23:14:06,736 [0xb7fe4700] ERROR Patch - error

同一时候,当前文件夹下也会有后缀名为log的文件产生

再来从头回答那两个问题

1.随你安装在哪个文件夹,是要gcc的时候指定好正确路径即可了

2.还是gcc的 -I -L -i的參数运用值得深究

好了。到眼下为止,最终让这个库起作用了。下一步就是分析怎样配置这个库。

后记:

1.为了支持中文。即能够输出中文到控制台或者文件,要在安装log4cxx时加上 --with-charset=utf-8 --with-logchar=utf-8,比如:

./configure --prefix=/home/mac/log4cxx/log4cxx --with-apr=/home/mac/log4cxx/apr --with-apr-util=/home/mac/log4cxx/apr-util--with-charset=utf-8 --with-logchar=utf-8

2.为了输出Qt的QString类型的字符串,要这样用,LOG4CXX_INFO(logger,qstring.toStdString()),用LOG4CXX_INFO(logger,qstring.toStdString().c_str())会出问题

log4cxx日志库RedHat下安装的更多相关文章

  1. RedHat下安装Python开发环境

    Linux RedHat下安装Python2.7.pip.ipython环境.eclipse和PyDev环境 准备工作,源Python2.6备份: 根据which python具体目录而定,进行备份 ...

  2. 如何在redhat下安装WineQQ

    使用过redhat的朋友都知道在redhat下要使用聊天工具例如:腾讯QQ只能是用网页QQ,但网页QQ始终用得不尽人意,下面我将给大家介绍一种在redhat下安装WineQQ的方法,让你能在redha ...

  3. 如何在redhat下安装办公软件(openoffice)

    在redhat的client版本中自带有办公软件libreoffice,而在server版的redhat中却没有自带的办公软件,那么,如何在redhat的server版下安装办公软件呢? 方法一:配置 ...

  4. RedHat下安装OPENCV

    1.解压 unzip opencv-2.4.9.zip 2.进入目录,cmake CMakeLists.txt  生成build文件 3.使用命令 make 编译 4.使用命令 make instal ...

  5. [学习OpenCV攻略][016][RedHat下安装OpenCV]

    安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...

  6. RedHat下安装MySQL5.5

    MYSQL在windows下面安装可能一帆风顺,但是如果真的到纯图形界面的redhat服务器上,可能就不是那么容易了, 这里我就详细的介绍一下MYSQL5.5在linux下的安装以及注意的问题,避免后 ...

  7. RedHat下安装Ecshop

    1. 设置虚拟机 2. 创建文件夹 mkdir /mnt/cdrom 3. 加载LINUX安装光盘 mount /dev/cdrom /mnt/cdrom 4. 进入安装程序目录 cd /mnt/cd ...

  8. RedHat下安装Telnet服务端及客户端远程连接配置

    Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力. 配置之前请确保网络连通,如防火墙影响连接,请先关 ...

  9. redhat下安装mysql 5.6.20,解压zip包,查看已经安装过的mysql,卸载rpm安装包,安装mysqlserver端和client,改动mysqlusername,登陆mysql,启动关闭mysql

     1 将相关的mysql rpm包上传到redhat上 2  我的电脑是Redhat 6.*版本号.所以这里使用上面一个 3  解压zip包 4  安装下面几个rpm MySQL-client-a ...

随机推荐

  1. Spark1.4远程调试

    1)首先,我们是在使用spark-submit提交作业时,使用 --driver-java-options ”-Xdebug -Xrunjdwp:transport=dt_socket,server= ...

  2. Http报头Accept与Content-Type的区别(转)

    1.Accept属于请求头, Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...

  3. SQL Server 存储过程小结

    Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...

  4. Jenkins任务优先分配到原来的执行节点上

    Jenkins一般部署采用master-salve架构,这样可以同时构建多个任务. jenkins任务构建时默认使用第一次随机分配的机器,这样可以增量拉取代码,减少gitlab或者github的负担. ...

  5. [iOS]在NavigationController中的ScrollView中的子视图都会下移64个像素

    情况是这种: 我有一个UINavigationController,设置为self.window的root视图, 然后有一个UIVIewController是UINavigtionController ...

  6. Grow heap (frag case) to 6.437MB for 1114126-byte allocation

    本篇文章是对Grow heap (frag case) 堆内存过大的问题进行了详细的分析介绍,需要的朋友参考下 对于Android开发者来说虽然使用了可以自动管理内存的Java语言,但是对于内存管理不 ...

  7. 通过Jenkins部署java项目

    部署java项目-创建私有仓库 Jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven ...

  8. Python 的错误和异常处理

    语法错误 Python 的语法错误或者称之为解析错,如下: >>> while True print('Hello world') File "<stdin>& ...

  9. shll 基础讲解

    http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html Shell编程基础 $# 命令行得到的参数个数 $@ 命令行得到的所有参数作 ...

  10. 解决window10系统电脑插入耳机之后没有声音的问题

    其实办法也是从百度百科上查到的 ⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄     可能是因为自己某个不小心的操作更改了设置 1. 首先要点开设置按钮,在搜索栏输入控制面板 (当然知道控制面板在哪里的小伙伴就不用 ...