log4c 使用例程

本文介绍了一种名为LOG4C的日志记录系统,详细解释了其使用接口及配置方法。LOG4C支持多种日志级别,如FATAL、ERROR、WARN、INFO和DEBUG,并提供了灵活的日志输出配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文提供LOG4C的使用接口文件

LOG_START() :    //初始化LOG4C

LOG_STOP():      //关闭LOG4C 

LOG_FATAL();        //记录fata信息

LOG_ERROR();    //记录error信息

LOG_WARN();   

LOG_INFO();         //记录info信息

LOG_DEBUG();   //调试debug信息



实现方式:

#define LOG_START() \

do {\
if (log4c_init())\
{\
printf("log4c init failed! you can not log with log4c!\n");\
}\
} while (0)



#define LOG_STOP() \
do {\
if (log4c_fini())\
{\
printf("log4c fini failed!\n");\
}\

} while(0)


#define LOGGER_CATEGORY_FILE        "file.info"                         //定义文件CATEGORY
#define LOGGER_CATEGORY_STDOUT "stdout.debug"            //终端CATEGORY


#define LOG_BASE_D(sLogMsg) \
char tmpLogLine[VWLITE_LOGGER_MAX_TMPLOGLINE] = {0}; \
snprintf(tmpLogLine, VWLITE_LOGGER_MAX_TMPLOGLINE, "[%s:%d] %s", \
__FILE__, __LINE__, sLogMsg);


#define LOG_BASE_PRIORITY_D(my_category, priority, sLogMsg, args...) \
do {\
LOG_BASE_D(sLogMsg);\
log4c_category_log(my_category, priority, tmpLogLine, ##args);\
} while(0)

/*区分信息是写到文件中还是终端*/

#define  LOG_FATAL(sLogMsg, args...)  LOG_BASE_PRIORITY_D(log4c_category_get(LOGGER_CATEGORY_FILE),    LOG4C_PRIORITY_FATAL,  sLogMsg, ##args)
#define  LOG_ERROR(sLogMsg, args...) LOG_BASE_PRIORITY_D(log4c_category_get(LOGGER_CATEGORY_FILE),   LOG4C_PRIORITY_ERROR, sLogMsg,##args)
#define  LOG_INFO(sLogMsg, args...) LOG_BASE_PRIORITY_D(log4c_category_get(LOGGER_CATEGORY_FILE),   LOG4C_PRIORITY_INFO, sLogMsg, ##args)
#define  LOG_WARN(sLogMsg, args...)  LOG_BASE_PRIORITY_D(log4c_category_get(LOGGER_CATEGORY_FILE),    LOG4C_PRIORITY_WARN,  sLogMsg, ##args)
#define  LOG_DEBUG(sLogMsg, args...) LOG_BASE_PRIORITY_D(log4c_category_get(LOGGER_CATEGORY_STDOUT),   LOG4C_PRIORITY_DEBUG, sLogMsg, ##args)




===========================================================================================================================

以下log4c  的配置文件log4crc

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE log4c SYSTEM "">


<log4c version="1.2.1">
<config>
<bufsize>0</bufsize>
<debug level="2"/>
<nocleanup>0</nocleanup>
<reread>1</reread>
</config>


<!-- edit category here --> <!-- priority ={trace, debug, info, warn, error, fatal} -->
        
<!-- <category name="stdout" priority="trace" appender="stdout"/> -->
        <category name="stdout.debug" priority="trace" appender="stdout"/>
        <category name="stdout.warn" priority="trace" appender="stdout"/>
        <category name="stdout.trace" priority="trace" appender="stdout"/>        
        <category name="file.info"  priority="info" appender="myrolling_info"/>
        <category name="file.trace" priority="trace" appender="myrolling_file"/>
        <category name="file.error" prioritr="error" appender="myrolling_err_fatal"/>
        

        <!-- edit rollingpolicy -->
<rollingpolicy name="policy_err_fatal" type="sizewin" maxsize="1048576" maxnum="2" />
<rollingpolicy name="policy_info" type="sizewin" maxsize="1048576" maxnum="5" />
<rollingpolicy name="policy_file" type="sizewin" maxsize="1048576" maxnum="3" />

<!-- edit appender -->
<appender name="myrolling_info" type="rollingfile" logdir="/var/log/vwlite/" prefix="vwlog" layout="dated_l" rollingpolicy="policy_info" />
<appender name="stdout" type="stream" layout="basic"/>
<appender name="stderr" type="stream" layout="basic"/>
<appender name="syslog" type="syslog" layout="basic"/>
<appender name="s13file" type="s13_file" layout="basic"/>
<appender name="plain_stderr" type="s13_stderr" layout="none"/>
<appender name="cat_stderr" type="s13_stderr" layout="catlayout"/>
<appender name="xml_stderr" type="s13_stderr" layout="xmllayout"/>
<appender name="user_stderr" type="s13_stderr" layout="userlayout"/>


<!-- edit layout -->
<layout name="basic" type="basic"/>
<layout name="dated" type="dated"/>

       <layout name="dated_l" type="dated_l"/>

<layout name="catlayout" type="s13_cat"/>
<layout name="xmllayout" type="s13_xml"/>
<layout name="none" type="s13_none"/>
<layout name="userlayout" type="s13_userloc"/>

</log4c>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值