技术宅,fat-man

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

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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   codestyle  阅读(1217)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示