最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • log4c.10.准备安装log4c库,sudoapt-devliblog4c

    例子:

    系统:ubuntu12.10 .

    准备:

    要安装 log4c 库c语言中变量区分大小写吗,sudo apt-get install liblog4c-dev liblog4c-doc

    其他系统请百度/GOOGLE查找相关编译安装。 log4c官网:

    文件:

    log.h log.c是一个自己重新打包log4c的函数

    test-log.c 主要测试函数

    log4crc 配置文件(xml,跟着就行)

    //log.h

    查看纯副本

    01.#ifndef _LOG_H_

    02.#define _LOG_H_

    03.

    04.#include

    05.#include

    06.

    07.#ifdef __cplusplus

    08.外部“C”

    09.{

    10.#endif

    11.

    12.#include “log4c.h”

    13.

    14.#ifdef __cplusplus

    15.}

    16.#endif

    17.

    18.#define LOG_PRI_ERROR LOG4C_PRIORITY_ERROR

    19.#define LOG_PRI_WARN LOG4C_PRIORITY_WARN

    20.#define LOG_PRI_NOTICE LOG4C_PRIORITY_NOTICE

    21.#define LOG_PRI_DEBUG LOG4C_PRIORITY_DEBUG

    22.#define LOG_PRI_TRACE LOG4C_PRIORITY_TRACE

    23.

    24.extern int log_open(const char *category);

    25.extern void log_message(int priority ,const char* fmt, …);

    26.extern void log_trace(const char *file , int line , const char *func, const char *fmt ,…);

    27.extern int log_close();

    28.

    29.#define LOG_ERROR(fmt , args…)

    30. log_message(LOG_PRI_ERROR, fmt, ##args)

    31.#define LOG_WARN(fmt, args…)

    32. log_message(LOG_PRI_WARN, fmt , ##args)

    33.#define LOG_NOTICE(fmt , args…)

    34. log_message(LOG_PRI_NOTICE, fmt , ##args)

    35.#define LOG_DEBUG(fmt , args…)

    36. log_message(LOG_PRI_DEBUG, fmt , ##args)

    37.#define LOG_TRACE(fmt,args…)

    38. log_trace(__FILE__ , __LINE__ , __FUNCTION__ , fmt ,##args)

    39.

    40.

    41.#endif

    //log.c

    在 CODE 上查看纯副本以查看派生到我的代码切片的代码切片

    01.#include

    02.#include

    03.#include “log.h”

    04.

    05.

    06.静态 log4c_category_t *log_category = NULL;

    07.

    08.int log_open(const char *category)

    09.{

    10. if (log4c_init() == 1)

    11. {

    12. 返回 -1;

    13. }

    14. log_category = log4c_category_get(category);

    15. 返回 0 ;

    16.}

    17.

    18.void log_message(int priority , const char *fmt , …)

    19.{

    20.va_list ap;

    21.

    22. 断言(log_category != NULL);

    23.

    24.va_start(ap, fmt);

    25. log4c_category_vlog(log_category , priority , fmt , ap);

    26.va_end(ap);

    27.}

    28.

    29.void log_trace(const char *file, int line, const char *fun,

    30. const char *fmt , …)

    31.{

    32. char new_fmt[2048];

    33. const char *head_fmt = “[文件:%s, 行:%d, 函数:%s]”;

    34.va_list ap;

    35. int n;

    36.

    37. 断言(log_category != NULL);

    38. n = sprintf(new_fmt, head_fmt, file , line , fun);

    39. strcat(new_fmt + n , fmt);

    40.

    41.va_start(ap , fmt);

    42. log4c_category_vlog(log_category, LOG4C_PRIORITY_TRACE, new_fmt, ap);

    43.va_end(ap);

    44.}

    45.

    46.

    47.int log_close()

    48.{

    49. 返回 (log4c_fini());

    50.}

    //test-log.c

    在 CODE 上查看纯副本以查看派生到我的代码切片的代码切片

    01.#include

    02.#include “log.h”

    03.

    04.int main(void)

    05.{

    06. log_open(“mycat”);

    07. LOG_TRACE(“trace”);

    08. LOG_ERROR(“错误”);

    09. LOG_WARN(“警告”);

    10. LOG_NOTICE(“通知”);

    11. LOG_DEBUG(“hello log4c!”);

    12. log_close();

    13. 返回 0;

    14.}

    //配置文件,默认名称为log4crc

    在 CODE 上查看纯副本以查看派生到我的“代码切片”的代码切片

    01.

    02.

    03.

    04.

    05.

    06.

    07.0

    08.

    09.0

    10.1

    11.

    12.

    13.

    14.

    15.

    16.

    17.

    18.

    19.

    20.

    21.

    22.

    23.

    24.

    25.

    26.

    编译命令:

    在 CODE 上查看纯副本以查看派生到我的代码切片的代码切片

    01.gcc test-log.c log.c -o test-log -llog4c

    跑步效果

    ./测试日志

    [stdout] TRACE mycat – [file:test-log.c, line:7, function:main]trace

    [stdout] 错误 mycat – 错误

    [stdout] WARN mycat – 警告

    [stdout] 注意 mycat – 注意

    [stdout] 调试 mycat – 你好 log4c!

    解释:

    关于log.h和log.c包的内容,大家可以看看。使用可变参数宏和可变参数。百度,有很多人解释。这里就不说了。

    log.h和log.c中的用法也很简单

    log_open(“category_name”); //category_name 必须是 log4crc 中定义的类别。

    关于配置文件log4crc

    更复杂的配置见:

    配置文件的搜索由 LOG4C_RCPATH 环境变量决定。搜索到的配置文件名为log4crc(不知道能不能改,没研究过)

    不知道配置文件中category的priority是什么意思,反正好像没什么用。设置什么似乎并不重要。

    环境变量:

    ?LOG4C_RCPATH 保存log4crc主配置文件的路径 #如果没有设置环境变量c语言中变量区分大小写吗,则在工作目录(通常是运行目录)中查找log4crc配置文件。如果设置了这个变量,那么所有使用log4c库的程序都会使用这个路径下的log4c配置文件(可以按类别区分)。

    ?LOG4C_PRIORITY 持有“root”类别优先级#更改root的优先级,,

    ?LOG4C_APPENDER 持有“root”类appender #更改root的appender,因为root默认不设置appender。

    【C语言log使用指南】相关文章:

    c语言中free的使用指南10-04

    断言在 C 语言 12-03 中的用法

    断言在 C 语言 10-07 中的用法

    c语言中default的使用10-05

    c语言中free的使用10-04

    c语言中bit的使用10-04

    sscanf在C语言中的使用11-17

    c语言中时间函数的使用10-08

    c语言中map的基本用法10-07

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » log4c.10.准备安装log4c库,sudoapt-devliblog4c

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论