`
sipgreen
  • 浏览: 27256 次
  • 性别: 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...

    CentOS7.2.1511 gcc4.8.5 通过编译的 tfs2.2.16

    解决:添加编译参数-fpermissive [root@localhost tfs_release-2.2.16]# vim src/name_meta_server/Makefile CXXFLAGS = -g -D__STDC_LIMIT_MACROS -Wall -Wextra -Wunused-parameter -Wformat -Wconversion -...

    freeradius-ldap-3.0.13-15.el7.x64-86.rpm.tar.gz

    而其他列出的RPM包如"xerces-c"、"tncfhh"、"log4cxx"、"tncfhh-libs"、"tncfhh-utils"、"apr"和"apr-util",则为FreeRADIUS提供运行所需的基础环境和扩展功能。"readme.md"文件通常包含了安装指南、配置说明和使用...

    mySQL安装手册

    在Linux系统下,特别是CentOS这样的发行版中,通过源码编译的方式安装MySQL不仅可以获得更高的性能,还能根据实际需求进行定制化配置。下面是具体的步骤: ##### 2.1 准备工作:构建编译环境 在开始MySQL的编译...

    mysql-5.5.28源码安装过程中错误总结

    4. **未找到Curses库**: MySQL的源码编译过程中,CMake还会检查Curses库,这是用于终端处理的库。如果未安装,需要安装`ncurses-devel`包,对于Redhat和其衍生版,命令是`yum install ncurses-devel -y`。 5. **...

Global site tag (gtag.js) - Google Analytics