Пример #1
0
int TestWLog(int argc, char* argv[])
{
	wLog* log;
	wLogLayout* layout;
	wLogAppender* appender;

	log = WLog_New("CONSOLE_LOG_TEST");

	WLog_SetLogLevel(log, WLOG_INFO);

	WLog_SetLogAppenderType(log, WLOG_APPENDER_CONSOLE);
	appender = WLog_GetLogAppender(log);

	layout = WLog_GetLogLayout(log);
	WLog_Layout_SetPrefixFormat(log, layout, "[%lv:%mn] [%fl|%fn|%ln] - ");

	WLog_ConsoleAppender_SetOutputStream(log, (wLogConsoleAppender*) appender, WLOG_CONSOLE_STDERR);
	WLog_OpenAppender(log);

	WLog_Print(log, WLOG_INFO, "this is a test");
	WLog_Print(log, WLOG_WARN, "this is a %dnd %s", 2, "test");
	WLog_Print(log, WLOG_ERROR, "this is an error");
	WLog_Print(log, WLOG_TRACE, "this is a trace output");

	WLog_CloseAppender(log);
	WLog_Free(log);

	log = WLog_New("FILE_LOG_TEST");

	WLog_SetLogLevel(log, WLOG_WARN);

	WLog_SetLogAppenderType(log, WLOG_APPENDER_FILE);
	appender = WLog_GetLogAppender(log);

	layout = WLog_GetLogLayout(log);
	WLog_Layout_SetPrefixFormat(log, layout, "[%lv:%mn] [%fl|%fn|%ln] - ");

	WLog_FileAppender_SetOutputFileName(log, (wLogFileAppender*) appender, "/tmp/wlog_test.log");
	WLog_OpenAppender(log);

	WLog_Print(log, WLOG_INFO, "this is a test");
	WLog_Print(log, WLOG_WARN, "this is a %dnd %s", 2, "test");
	WLog_Print(log, WLOG_ERROR, "this is an error");
	WLog_Print(log, WLOG_TRACE, "this is a trace output");

	WLog_CloseAppender(log);
	WLog_Free(log);

	return 0;
}
Пример #2
0
wLog* WLog_Get(LPCSTR name)
{
	wLog* log;

	if (!(log = WLog_FindChild(name)))
	{
		wLog* root = WLog_GetRoot();

		if (!root)
			return NULL;

		if (!(log = WLog_New(name, root)))
			return NULL;

		if (!WLog_AddChild(root, log))
		{
			WLog_Free(log);
			return NULL;
		}
	}

	return log;
}
Пример #3
0
wLog* WLog_GetRoot(void)
{
	char* env;
	DWORD nSize;
	DWORD logAppenderType;

	if (!g_RootLog)
	{
		if (!(g_RootLog = WLog_New("", NULL)))
			return NULL;

		g_RootLog->IsRoot = TRUE;
		WLog_ParseFilters();
		logAppenderType = WLOG_APPENDER_CONSOLE;
		nSize = GetEnvironmentVariableA("WLOG_APPENDER", NULL, 0);

		if (nSize)
		{
			env = (LPSTR) malloc(nSize);

			if (!env)
				goto fail;

			if (!GetEnvironmentVariableA("WLOG_APPENDER", env, nSize))
			{
				fprintf(stderr, "WLOG_APPENDER environment variable modified in my back");
				free(env);
				goto fail;
			}

			if (_stricmp(env, "CONSOLE") == 0)
				logAppenderType = WLOG_APPENDER_CONSOLE;
			else if (_stricmp(env, "FILE") == 0)
				logAppenderType = WLOG_APPENDER_FILE;
			else if (_stricmp(env, "BINARY") == 0)
				logAppenderType = WLOG_APPENDER_BINARY;

#ifdef HAVE_SYSLOG_H
			else if (_stricmp(env, "SYSLOG") == 0)
				logAppenderType = WLOG_APPENDER_SYSLOG;

#endif /* HAVE_SYSLOG_H */
#ifdef HAVE_JOURNALD_H
			else if (_stricmp(env, "JOURNALD") == 0)
				logAppenderType = WLOG_APPENDER_JOURNALD;

#endif
			else if (_stricmp(env, "UDP") == 0)
				logAppenderType = WLOG_APPENDER_UDP;

			free(env);
		}

		if (!WLog_SetLogAppenderType(g_RootLog, logAppenderType))
			goto fail;
	}

	return g_RootLog;
fail:
	free(g_RootLog);
	g_RootLog = NULL;
	return NULL;
}