Beispiel #1
0
int WLog_CallbackAppender_WriteMessage(wLog* log, wLogCallbackAppender* appender, wLogMessage* message)
{
	char prefix[WLOG_MAX_PREFIX_SIZE];

	message->PrefixString = prefix;
	WLog_Layout_GetMessagePrefix(log, appender->Layout, message);

	if (appender->message)
	{
		appender->message(message);
	}
	else
	{
		return -1;
	}

	return 1;
}
Beispiel #2
0
int WLog_FileAppender_WriteMessage(wLog* log, wLogFileAppender* appender, wLogMessage* message)
{
	FILE* fp;
	char prefix[WLOG_MAX_PREFIX_SIZE];

	fp = appender->FileDescriptor;

	if (!fp)
		return -1;

	message->PrefixString = prefix;
	WLog_Layout_GetMessagePrefix(log, appender->Layout, message);

	fprintf(fp, "%s%s\n", message->PrefixString, message->TextString);

	fflush(fp); /* slow! */
	
	return 1;
}
Beispiel #3
0
static BOOL WLog_UdpAppender_WriteMessage(wLog* log, wLogAppender* appender, wLogMessage* message)
{
	char prefix[WLOG_MAX_PREFIX_SIZE];
	wLogUdpAppender *udpAppender;


	if (!log || !appender || !message)
		return FALSE;

	udpAppender = (wLogUdpAppender *)appender;

	message->PrefixString = prefix;
	WLog_Layout_GetMessagePrefix(log, appender->Layout, message);

	_sendto(udpAppender->sock, message->PrefixString, strlen(message->PrefixString),
				0, &udpAppender->targetAddr, udpAppender->targetAddrLen);

	_sendto(udpAppender->sock, message->TextString, strlen(message->TextString),
						0, &udpAppender->targetAddr, udpAppender->targetAddrLen);

	_sendto(udpAppender->sock, "\n", 1, 0, &udpAppender->targetAddr, udpAppender->targetAddrLen);

	return TRUE;
}
Beispiel #4
0
static BOOL WLog_ConsoleAppender_WriteMessage(wLog* log, wLogAppender* appender, wLogMessage* message)
{
	FILE* fp;
	char prefix[WLOG_MAX_PREFIX_SIZE];
	wLogConsoleAppender *consoleAppender;
	if (!appender)
		return FALSE;

	consoleAppender = (wLogConsoleAppender *)appender;


	message->PrefixString = prefix;
	WLog_Layout_GetMessagePrefix(log, appender->Layout, message);

#ifdef _WIN32
	if (consoleAppender->outputStream == WLOG_CONSOLE_DEBUG)
	{
		char MessageString[4096];

		sprintf_s(MessageString, sizeof(MessageString), "%s%s\n",
			  message->PrefixString, message->TextString);

		OutputDebugStringA(MessageString);

		return TRUE;
	}
#endif
#ifdef ANDROID
	(void)fp;
	android_LogPriority level;
	switch(message->Level)
	{
		case WLOG_TRACE:
			level = ANDROID_LOG_VERBOSE;
			break;
		case WLOG_DEBUG:
			level = ANDROID_LOG_DEBUG;
			break;
		case WLOG_INFO:
			level = ANDROID_LOG_INFO;
			break;
		case WLOG_WARN:
			level = ANDROID_LOG_WARN;
			break;
		case WLOG_ERROR:
			level = ANDROID_LOG_ERROR;
			break;
		case WLOG_FATAL:
			level = ANDROID_LOG_FATAL;
			break;
		case WLOG_OFF:
			level = ANDROID_LOG_SILENT;
			break;
		default:
			level = ANDROID_LOG_FATAL;
			break;
	}

	if (level != ANDROID_LOG_SILENT)
		__android_log_print(level, log->Name, "%s%s", message->PrefixString, message->TextString);

#else
	switch(consoleAppender->outputStream)
	{
		case WLOG_CONSOLE_STDOUT:
			fp = stdout;
			break;
		case WLOG_CONSOLE_STDERR:
			fp = stderr;
			break;
		default:
			switch(message->Level)
			{
				case WLOG_TRACE:
				case WLOG_DEBUG:
				case WLOG_INFO:
					fp = stdout;
					break;
				default:
					fp = stderr;
					break;
			}
			break;
	}

	if (message->Level != WLOG_OFF)
		fprintf(fp, "%s%s\n", message->PrefixString, message->TextString);
#endif
	return TRUE;
}