log4c 使用例程

本文提供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>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章