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中,里面的文件有log4c编译与简单使用总结_第1张图片

    我们程序要用到的是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;
}


你可能感兴趣的:(linux,log4c)