static int timewin_fini(log4c_rollingpolicy_t *this){
rollingpolicy_timewin_udata_t *swup =NULL;
int rc = 0;
sd_debug("timewin_fini[ ");
if (!this){
goto timewin_fini_exit;
}
swup = log4c_rollingpolicy_get_udata(this);
if (!swup){
goto timewin_fini_exit;
}
if (swup->sw_curfileflag)
{
free(swup->sw_curfileflag);
}
if (swup->sw_prefileflag)
{
free(swup->sw_prefileflag);
}
swup->sw_flags = 0;
/* logdir and files_prefix are just pointers into the rollingfile udata
* so they are not ours to free--that will be done by the free call to
* the rollingfile appender
*/
sd_debug("freeing timewin udata from rollingpolicy instance");
free(swup);
log4c_rollingpolicy_set_udata(this,NULL);
timewin_fini_exit:
sd_debug("]");
return(rc);
}
/*******************************************************************************
timewin specific conf functions
*******************************************************************************/
LOG4C_API rollingpolicy_timewin_udata_t *timewin_make_udata(void)
{
rollingpolicy_timewin_udata_t *swup = NULL;
swup = (rollingpolicy_timewin_udata_t *)sd_calloc(1,
sizeof(rollingpolicy_timewin_udata_t));
timewin_udata_set_file_time_type(swup,
ROLLINGPOLICY_TIME_DEFAULT_FILE_TYPE);
timewin_udata_set_max_num_files(swup,
ROLLINGPOLICY_TIME_DEFAULT_MAX_NUM_FILES);
swup->sw_curfileflag = 0;
swup->sw_prefileflag = 0;
swup->sw_flags = 0;
return(swup);
}
/*******************************************************************************/
LOG4C_API int timewin_udata_set_file_time_type(rollingpolicy_timewin_udata_t * swup,
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23402-8.html
太完美了