`
sipgreen
  • 浏览: 26628 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

centos中编译log4cxx

阅读更多
log4cxx-0.10.0日志中文乱码

log4cxx升级到0.10.0后, 发现中文输出为乱码.
其实应该是中文变成了问号, 不是乱码.

问号在logcxx中表示编解码过程中的字符丢失.
    enum { LOSSCHAR = 0x3F };
如果中文按ASCII解码, 因为字符大于0x80, 都会被变成问号.

修改办法,进入log4cxx-0.10.0目录,
./configure --with-charset=utf-8 --with-logchar=utf-8
then
make
sudo make install
(参考: http://cooling.ape-tech.com/bbs/thread-2084-1-1.html) 或者         另外,发现打印出的日志在某些机器上不支持中文, 中文显示为乱码,通过在配置文件中增加如下配置项即可解决:

log4j.appender.sample.encoding=UTF-8,这里,sample即为你的日志类






1 下载 http://logging.apache.org/log4cxx/   依赖于  http://apr.apache.org/ 的 APR 及 APR-Util包

(1)安装

安装顺序不能变。首先要安装APR,下载到源码安装包后,解压出来,然后:

(1)./configure --prefix=/usr/local/apr
make
make install 
这里把APR安装到了 /usr/local/apr 目录下,注意,千万不要直接./configure,因为那样会把APR的文件安装到若干目录下,非常不利于维护。

再安装APR-Util,和上面一样,解压出来源码安装包,然后:
(2)
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install 
这里,通过 –with-apr 参数指定了前一步安装的APR的目录,同时也将APR-Util的安装目录设置在了/usr/local/apr-util 目录下。
(3)
最后,就是安装log4cxx了,但是在安装之前,还要再注意一点:configure的时候要指定APR和APR-Util的安装路径:

./configure --prefix=/usr/local/log4cxx --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
mv libtool libtool.bak
ln -s /usr/bin/libtool libtool
 make // 这里会出错 错误解决请看下面
make install 
注意,中间有两条匪夷所思的命令(mv 和 ln -s),如果不执行的话,会报错(我不太记得是在configure的时候还是make的时候报的错了):


特别注意:
vi src/examples/cpp/console.cpp 中添加 #include <stdio.h>和#include <string.h>
vi src/main/cpp/socketoutputstream.cpp 中添加 #include <string.h>
vi src/main/cpp/inputstreamreader.cpp 中添加 #include <string.h>

2  编译  包含   /usr/local/apr/include   /usr/local/log4cxx/include 及 /usr/local/apr-util/include 到工程目录中

3 链接   在链接时 需 包含 头文件及  libaprutil-1.a liblog4cxx.a 及 libapr-1.a 静态库 及   -lpthread -lexpat 选项
如果出现 /usr/bin/ld: cannot find -lexpat 错误 请安装 expat.i686 及 expat-devel.i686 包

4   log4cxx的使用请参考原有文档
分享到:
评论

相关推荐

    日志系统log4cxx的安装过程记录

    然后在Visual Studio中打开`log4cxx.dsw`项目,选择“build”-&gt;“build log4cxx.dll”以生成动态链接库和库文件。 **二、Linux下的安装** 1. **安装apr**:解压`apr-1.4.5`,使用`./configure --prefix=/usr/local...

    CentOS 7编译CC.docx

    本文主要讲述了在 CentOS 7 中编译 Redis 时出现的 "cc:未找到命令" 错误的解决方案。该错误的出现是由于虚拟机系统中缺少 GCC 造成的。为了解决这个问题,我们需要安装 GCC。 GCC(GNU Compiler Collection)是一...

    centos7编译安装gdal所需文件

    gdal在linux上安装需要的文件比较多,附件包含gdal2.2.3及依赖的文件: proj-4.9.3.tar.gz geos-3.6.2.tar.gz jpegsrc.v9b.tar.gz hdf-4.2.13.tar.gz hdf5-1.10.1.tar.gz ...netcdf-4.4.1.tar.gz ...

    boost centos7编译好的完成版本可以直接引入使用

    总结起来,`boost_1_68_0`是一个在CentOS7上预先编译的Boost库版本,适用于那些希望快速集成Boost功能到项目中的开发者。它包含了丰富的C++编程工具,涵盖了多个领域,从并发编程到数据序列化。通过理解Boost库的...

    CentOS7系统QT交叉编译工具

    在本案例中,我们的目标是让在CentOS7编译的QT程序能在ARM开发板上运行。 1. **安装基础工具**: 在开始QT交叉编译之前,确保你的CentOS7系统已经安装了必要的基础工具,如GCC交叉编译器、make、automake、libtool...

    centos7编译安装httpd

    centos7编译安装httpd

    centos6.5编译好thrift

    标题中的“centos6.5编译好thrift”指的是在CentOS 6.5操作系统环境下,已经成功编译了Thrift 0.12.0版本。Thrift是一款开源跨语言的服务框架,由Facebook开发并贡献给Apache基金会,它的主要功能是帮助开发者构建...

    CentOS7环境下编译的openssl 3.0动态库和静态库

    在压缩包`CentOS-openssl 3.0-library`中,包含了编译好的动态库和静态库,这意味着用户可以直接使用,而无需自行编译。这对于开发者来说是个巨大的便利,可以节省时间和资源,更快地将项目推向市场。 总结来说,这...

    CentOS7环境下编译的boost 1.69静态库和动态库

    在CentOS7操作系统中编译Boost 1.69,你需要确保系统已经安装了必要的依赖项,如GCC编译器、Bison、Flex等。可以通过运行以下命令来安装这些依赖: ```bash sudo yum install gcc-c++ bison flex ``` 接下来,从...

    CentOS7环境下编译的libwebsockets动态库和静态库

    本篇将详细解析如何在CentOS 7环境下编译libwebsockets动态库和静态库,并探讨其在实际应用中的价值。 首先,让我们了解一下libwebsockets库。libwebsockets是一个C语言编写的WebSocket库,它支持HTTP和WebSocket...

    CentOS7系统下的ARM交叉编译工具

    5. **环境变量设置**:为了让编译器知道如何找到交叉编译工具链,需要在`~/.bashrc`或`~/.bash_profile`中设置`PATH`、`CC`、`CXX`等环境变量。 6. **验证**:编译一个简单的C或C++程序,然后在ARM开发板上运行验证...

    centos7环境下编译opencv4.5.4生成的so和jar

    4. **编译和安装**:使用`make`命令进行编译,根据机器性能可能需要一段时间。完成后,使用`sudo make install`将编译好的库安装到系统路径。 ```bash make -j$(nproc) # 使用所有CPU核心进行并行编译 sudo make ...

    centos7环境下编译opencv4.5.2生成的so和jar

    在Linux的CentOS 7环境下,编译OpenCV 4.5.2是一个涉及多步骤的过程,主要目的是生成适用于Java的动态链接库(.so)和Java Archive(.jar)文件,以便在Java应用程序中使用OpenCV的功能。下面将详细介绍这个过程以及...

    基于centos6.5 已经编译好的hadoop-2.6.4

    标题"基于centos6.5 已经编译好的hadoop-2.6.4"指的是在CentOS 6.5操作系统环境下,已经完成了对Hadoop 2.6.4版本的编译工作。这通常意味着用户可以直接在同样环境或相似环境中使用这个编译好的版本,而无需自己进行...

    centos7编译安装php

    centos7编译安装php

    在centos上编译netsniff-ng所需要的几个小工具

    4. 安装完成后,你可以继续下载netsniff-ng的源代码,并在相同环境中编译安装。 在成功安装这些依赖后,netsniff-ng将能够充分利用这些库的功能,提供高效且安全的网络流量监控。通过结合使用这些工具,你可以在...

    CentOS 6.2编译安装LAMP最详细教程!

    CentOS 6.2编译安装LAMP最详细教程!

    postgresql14加postgis3.2在centos离线编译安装

    在Linux环境中,特别是CentOS操作系统上,离线安装软件包是一项常见的需求,特别是在没有网络连接或者网络环境受限的服务器上。本教程将详细介绍如何在CentOS系统上离线编译安装PostgreSQL 14和PostGIS 3.2,这两个...

    centos6.7编译hadoop

    centos6.7编译hadoop2.6 里面详细的写了过程 。ide为idea,这里注意一下

    centos下opencv的编译后的安装包(编译时带opencv-contrib扩展包)c++

    这个压缩包`opencv_CentOS Linux release 8.5.2111`很可能包含了编译好的库文件、头文件和其他相关资源,用户可以直接使用它们而无需亲自编译。使用这些库的步骤如下: 1. **解压文件**: - 将压缩包解压到适当的...

Global site tag (gtag.js) - Google Analytics