打印

一个不错的log开源工具:log4cxx

[复制链接]
6671|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
keer_zu|  楼主 | 2014-12-30 10:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一)下载源文件
log4cxx的官方下载地址是http://logging.apache.org/log4cxx/index.html,我用的是0.10.0版本。
可以直接取下面的链接版本
http://www.apache.org/dyn/closer ... g4cxx-0.10.0.tar.gz
下载后解压
二)安装log4cxx需要apr支持,apr官网地址是:http://apr.apache.org/,需要下载apr和apr_util两个组件。
地址:  http://apr.apache.org/download.cgi
我用的版本分别是apr-1.5.1.tar.gz和apr-util-1.5.4.tar.gz。

[注意]不要放在共享的windows目录下解压安装,./configure会出现:./config.status: line 331: syntax error near unexpected token `newline'  的错误
三)第一步安装apr-1.5.1.tar,顺序不能错,它必须首选安装
$tar zxvf apr-1.5.1.tar.gz
$cd apr-1.5.1
$./configure --prefix=/usr/local/apr
$make
$su root
$make install

四)然后安装apr-util-1.5.4
$./configure --prefix=/usr/local --with-apr=/usr/local/apr
$make
$su root
$make install
configure选项 --with-apr=/usr/local/apr指定apr库的位置

五)最后就可以安装log4cxx了
$tar zxvf apache-log4cxx-0.10.0.tar.gz
$cd apache-log4cxx-0.10.0
$./configure --prefix=/usr/local
$make
$su root
$make install
六)因为编译成的是共享库,最后还要设置下搜索目录,编辑~/.bashrc,添加下面两行
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH 
OK,至此log4cxx就安装完毕了。
七)最后写个程序,测试下。
 
#include <log4cxx/logger.h>
#include <log4cxx/logstring.h>
#include <log4cxx/propertyconfigurator.h>
int main(int argc, char* argv[])
{
    using namespace log4cxx;
    // 读取配置文件
    PropertyConfigurator::configure("log4cxx.cfg");
    // 建立两个logger
    LoggerPtr logger1 = Logger::getLogger("TraceYourName");
    LoggerPtr logger2 = Logger::getLogger("Patch");
    LOG4CXX_TRACE(logger1, "TRACE");
    LOG4CXX_WARN(logger1, "WARNING");
    LOG4CXX_DEBUG(logger1, "DEBUG");
    LOG4CXX_ASSERT(logger1, false, "ASSERT");
    LOG4CXX_FATAL(logger1, "FATAL");
    LOG4CXX_TRACE(logger2, "TRACE");
    LOG4CXX_ERROR(logger2, "ERROR");
    return 0;
}
编译链接
$g++ -o main main.cpp -llog4cxx -lapr-1 -laprutil-1 -lexpat
因为log4cxx需要依赖arp和aprutil两个库,而这两个库又需要依赖 expat库,所以在链接的时候需要将/usr/local/lib下的这三个库链接进可执行程序
八)最后在运行程序的时候会报如下错误
log4cxx: Could not read configuration file [log4cxx.cfg].
log4cxx: No appender could be found for logger (TraceYourMama).
log4cxx: Please initialize the log4cxx system properly.
这是因为没有配置log4cxx.cfg文件,在可执行程序目录下手动创建以配置文件log4cxx.cfg
填充内如如下


    log4j.rootLogger=debug, R
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=./hello.log
    log4j.appender.R.MaxFileSize=100KB
    # Keep one backup file
    log4j.appender.R.MaxBackupIndex=10
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%5p %c [%t] (%F:%L) - %m%n
   
九)上面配置了一个名字为hello.log,大小100K的日志文件,再次运行可执行程序,发现当前目录下生成了一个hello.log文件,打开内容如下:
WARN TraceYourMama [0x2aafe4193ac0] (../src/main.cpp:196) - WARNING
DEBUG TraceYourMama [0x2aafe4193ac0] (../src/main.cpp:197) - DEBUG
ERROR TraceYourMama [0x2aafe4193ac0] (../src/main.cpp:198) - ASSERT
FATAL TraceYourMama [0x2aafe4193ac0] (../src/main.cpp:199) - FATAL
ERROR Patch [0x2aafe4193ac0] (../src/main.cpp:201) - ERROR

相关帖子

沙发
keer_zu|  楼主 | 2014-12-30 10:54 | 只看该作者
第六条应改为:五)最后就可以安装log4cxx了
$tar zxvf apache-log4cxx-0.10.0.tar.gz
$cd apache-log4cxx-0.10.0
$./configure --prefix=/usr/local
$make
$su root
$make install
因为编译成的是共享库,最后还要设置下搜索目录:
echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf ; echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf ; ldconfig ;
OK,至此log4cxx就安装完毕了。

使用特权

评论回复
板凳
hexenzhou| | 2015-1-3 12:05 | 只看该作者
嵌入式Linux能用吗?

使用特权

评论回复
地板
keer_zu|  楼主 | 2015-1-3 13:22 | 只看该作者
hexenzhou 发表于 2015-1-3 12:05
嵌入式Linux能用吗?

可以

使用特权

评论回复
5
wyscjm| | 2015-1-30 15:12 | 只看该作者
我最近用了下log4qt,弄了好几天才运行起来,然后也没用,编译出来挺大的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1352

主题

12436

帖子

53

粉丝