您的位置:首页 > 运维架构 > Linux

log4c编译与简单使用总结

2015-10-09 00:00 543 查看
摘要: 本文简单介绍了自己编译与使用log4c的过程,希望给大家用到log4c时一点帮助.

一)解压下载的log4c-1.2.4.tar.gz源码,进入文件夹中,打开README,编译的过程可以按照里面的流程

$mkdir build;
$cd build
$../log4c-1.2.4/configure --prefix=/path/of/installation
$make
$make install

假如我们要安装的目录为/home/abc/a,则上面第三句则为

$../log3c-1.2.4/configure --prefix=/home/abc/a

如果你是为了在其他平台运行的话,比如ARM平台,则可以用如下指令

$../log3c-1.2.4/configure --prefix=/home/abc/a --host=arm-linux --without-expat

没加without--expat的话要在你的电脑安装适于交叉环境的expat才能正常编译。

这样执行出来的结果是多了一个build目录,这里面不仅包含了Makefile文件,还包含了example生成的可执行文件,另外还在/home/abc/a下多了安装的log4c等文件,包含了运行库lib,头文件等.这个是自己编写程序运行的关键部分.

二)如果你只是想运行一个example下的文件的话,可以运行build中的example中的可执行文件,日志的输出配置是在log4crc中配置的,不用去修改example中的C语言源码再重新编译,从这个角度出现的话,可以体会一下log4crc配置日志代码的功能.

三)下面介绍的是用学有源码example中的helloworld.c为我们的主文件,编译可执行的文件.一般一个具体的有日志功能的工程包含下面几类文件:

1)用户自定义c语言源文件,*.c与*.h

2)log4c运行库文件与依赖头文件,这个看你个人存放的目录,像我之前的目录就是/home/abc/a中,里面的文件有


我们程序要用到的是lib中的动态链接库和include中的文件.

3)log4crc文件,这个是配置输出的日志的格式等,一般一个最简单的可编译文件下最少有一个.c文件和一个log4crc文件.

在该目录下打开终端,输入如下开始编译

gcc -g -Wall -O0 helloworld.c -o helloworld -L/home/abc/a/lib -llog4c -I/home/abc/a/include

这样就会编译与功了.

4)修改一下log4crc文件,其他大部分的log4crc文件都是类似的,你可以打开文件,看有没有以下三句,如果没有的话,添加进去,有的话可以不会,可能有添加的是第一行.

<category name="log4c.examples.helloworld" priority="debug" appender = "stdout"/>
<appednder name="stdout" type="stream" layout="basis"/>
<layout name="basic" type="basic"/>

5)运行程序

./helloworld

会输出如下的信息:

[stdout] ERROR    log4c.examples.helloworld - Hello World!

到此,我们的编译就自算完成了,其他的应用也是在这样的环境中添加更多的功能.祝各位好运.

附:Helloworld.c的程序

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <stdio.h>

#include "log4c.h"

int main(int argc, char** argv){
int rc = 0;
log4c_category_t* mycat = NULL;

if (log4c_init()){
printf("log4c_init() failed");
rc = 1;
}else{
mycat = log4c_category_get("log4c.examples.helloworld");

log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "Hello World!");

/* Explicitly call the log4c cleanup routine */
if ( log4c_fini()){
printf("log4c_fini() failed");
}
}
return rc;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  log4c linux