log4cpp乱码_log4cxx安装和使用

二、下载与安装

环境:linux

依赖:apr、apr-util

安装步骤:

1.由于log4cxx是依赖于apr的,因此先安装apr和apr-util这两个库,我会将这两个库安装到同一个目录下;

$>tar xvf apr-1.4.6.tar.gz

$>cd apr-1.4.6

$>./configuer --prefix=/usr/local/apr

$>make

$>make install

目前apr安装完成,会在/usr/local下产生apr目录

$>tar xvf apr-util-1.5.1.tar.gz

$>cd apr-util-1.5.1

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

$>make

$>make install

apr-util也会安装/usr/local/apr目录下

2.开始安装log4cxx,下载完之后,当前目录下有apache-log4cxx-0.10.0.tar.gz。

$>tar xvf apache-log4cxx-0.10.0.tar.gz

$>cd apache-log4cxx-0.10.0

$>./configure --prefix=/usr/local/log4cxx --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr  --with-charset=utf-8 --with-logchar=utf-8

$>make

注意:由于我用的是ubuntu系统,默认编码是utf-8,因此必须要加上 --with-charset=utf-8 --with-logchar=utf-8,不然中文输出是一堆乱码。

这时候会出现这样的错误

inputstreamreader.cpp:66: error: 'memmove' was not declared in this scope

make[3]: *** [inputstreamreader.lo] 错误 1

在网上找了相关资料,原来有几个.cpp文件缺少了一些引用头文件,添加上去即可。

src/main/cpp/inputstreamreader.cpp添加#include 

src/main/cpp/socketoutputstream.cpp添加#include 

src/examples/cpp/console.cpp添加#include ;#include ;

这些文件修改完之后,执行make和make install就可安装成功。

三、测试

主函数代码:main.cpp

#include 

#include 

#include 

#include 

#include 

int main()

{

log4cxx::PropertyConfigurator::configureAndWatch("log4cxx.properties");

log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger("lib"));

LOG4_DEBUG(logger, "this is log4cxx test");

return 0;

}

配置文件:log4cxx.properties

# 设置root logger为DEBUG级别,使用了ca和fa两个Appender

log4j.rootLogger=DEBUG,lib

#对Appender lib进行设置:

# 这是一个文件类型的Appender,

# 其输出文件(File)为./lib.log,

# 输出方式(Append)为覆盖方式,

# 输出格式(layout)为PatternLayout

log4j.appender.lib=org.apache.log4j.ConsoleAppender

log4j.appender.lib.Threshold=DEBUG

#log4j.appender.lib.DatePattern='log/'yyyy-MM-dd'_SysService.log'

log4j.appender.lib.File=./log/output.log

log4j.appender.lib.Append=true

log4j.appender.lib.layout=org.apache.log4j.PatternLayout

log4j.appender.lib.layout.ConversionPattern=[%-5p] %d %l : %m%n

$>g++ -o test -I/usr/local/apr/include -L/usr/local/apr/lib -lapr-1 -laprutil-1 main.cpp

$./test

会在屏幕中打印出

[DEBUG] 2012年11月14日 15:16:17,890 main.cpp(10) : test

先写到这里,下篇将会介绍log4cxx的配置。

我使用报错,没找到文件:

defines.h:24:28: fatal error: log4cxx/logger.h: No such file or directory

#include

我是装在:/usr/local/log4cxx 目录

下面有2个目录,include和lib。

/usr/local/log4cxx/include/log4cxx 才是头文件。

我们在gcc加上-I/usr/local/log4cxx/include 即可。

加上lib目录:-L/usr/local/log4cxx/lib

使用时

//usr/local/apr/lib/libapr-1.so.0: undefined reference to `uuid_generate@UUID_1.0'

加上

参考:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值