Exemple #1
0
void WLog_Appender_Free(wLog* log, wLogAppender* appender)
{
	if (appender)
	{
		if (appender->Layout)
		{
			WLog_Layout_Free(log, appender->Layout);
			appender->Layout = NULL;
		}

		DeleteCriticalSection(&appender->lock);

		if (appender->Type == WLOG_APPENDER_CONSOLE)
		{
			WLog_ConsoleAppender_Free(log, (wLogConsoleAppender*) appender);
		}
		else if (appender->Type == WLOG_APPENDER_FILE)
		{
			WLog_FileAppender_Free(log, (wLogFileAppender*) appender);
		}
		else if (appender->Type == WLOG_APPENDER_BINARY)
		{
			WLog_BinaryAppender_Free(log, (wLogBinaryAppender*) appender);
		}
		else if (appender->Type == WLOG_APPENDER_CALLBACK)
		{
			WLog_CallbackAppender_Free(log, (wLogCallbackAppender*) appender);
		}
	}
}
Exemple #2
0
void WLog_Appender_Free(wLog* log, wLogAppender* appender)
{
	if (!appender)
		return;

	if (appender->Layout)
	{
		WLog_Layout_Free(log, appender->Layout);
		appender->Layout = NULL;
	}

	DeleteCriticalSection(&appender->lock);

	switch (appender->Type)
	{
	case WLOG_APPENDER_CONSOLE:
		WLog_ConsoleAppender_Free(log, (wLogConsoleAppender*) appender);
		break;
	case WLOG_APPENDER_FILE:
		WLog_FileAppender_Free(log, (wLogFileAppender*) appender);
		break;
	case WLOG_APPENDER_BINARY:
		WLog_BinaryAppender_Free(log, (wLogBinaryAppender*) appender);
		break;
	case WLOG_APPENDER_CALLBACK:
		WLog_CallbackAppender_Free(log, (wLogCallbackAppender*) appender);
		break;
#ifdef HAVE_SYSLOG_H
	case WLOG_APPENDER_SYSLOG:
		WLog_SyslogAppender_Free(log, (wLogSyslogAppender *) appender);
		break;
#endif
	default:
		fprintf(stderr, "%s: don't know how to free appender type %d\n", __FUNCTION__, appender->Type);
		break;
	}
}