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的使用请参考原有文档

你可能感兴趣的:(centos)