技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

log4c 编译安装简单小结(ubuntu12)

1 下载源码,解压 (假定解压到了当前用户的根目录下,位置是~/log4c-1.2.3)

2 编译安装log4c(指定--prefix极其重要,如果没有指定到/usr下会有一堆麻烦事,还有,不能按照他的README里说的,指定到/path/of/installation,因为这样真的会在根目录下建立这样的目录)

cd ~
tar -zxvf log4c-1.2.3.tar.gz
mkdir build; cd build
../log4c-1.2.3/configure --prefix=/usr/local/log4c
make
make install

3 编译log4c自带的例子

cd ~/log4c-1.2.3/examples/helloworld
gcc -o hello helloworld.c -llog4c -I /usr/local/log4c/include -L /usr/local/log4c/lib
./hello

 

编译成功,但是执行提示找不到liblog4c.so.3 (这就是没把程序装到/usr下的孽啊)找了一下,这个文件就在/usr/local/log4c/lib下

4 配置log4c的lib所在目录

编辑/etc/ld.so.conf 发现他的内容只是要求加载 /etc/ld.so.conf.d/下的conf,进入该目录查看,发现 /etc/ld.so.conf.d/libc.conf文件,在里面追加/usr/local/log4c/和/usr/local/log4c/lib (以行分隔,共两行,其实我不确定是哪行生效了,下次可以再试下)

5 立即生效

sudo ldconfig

 6 配置文件

此时执行hello,程序无任何输出

cp ~/log4c-1.2.3/examples/log4crc ~/log4c-1.2.3/examples/helloworld/log4crc 

并且在log4crc文件里log4c节点里追加一行配置(helloworld.c源码里指定的配置)

<category name="log4c.examples.helloworld" priority="debug" appender="stdout"/>

 7 回到hello所在目录,运行

执行hello成功(该例子是在屏幕上打印一行日志)

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

 8 输出日志到文件

修改log4crc的文件,将添加的log4c.examples.helloworld节点appender指定为日志文件名字,例如我指定了aaa

<category name="log4c.examples.helloworld" priority="debug" appender="aaa"/>

执行hello 在hello所在目录下生成一个文件aaa,打开里面的内容是:

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

 

posted on 2013-07-29 18:03  codestyle  阅读(1170)  评论(0编辑  收藏  举报