Blame winpr/libwinpr/utils/test/TestWLog.c

Packit 1fb8d4
#include <winpr/crt.h>
Packit 1fb8d4
#include <winpr/tchar.h>
Packit 1fb8d4
#include <winpr/path.h>
Packit 1fb8d4
#include <winpr/file.h>
Packit 1fb8d4
#include <winpr/wlog.h>
Packit 1fb8d4
Packit 1fb8d4
int TestWLog(int argc, char* argv[])
Packit 1fb8d4
{
Packit 1fb8d4
	wLog* root;
Packit 1fb8d4
	wLog* logA;
Packit 1fb8d4
	wLog* logB;
Packit 1fb8d4
	wLogLayout* layout;
Packit 1fb8d4
	wLogAppender* appender;
Packit 1fb8d4
	char* tmp_path = NULL;
Packit 1fb8d4
	char* wlog_file = NULL;
Packit 1fb8d4
	int result = 1;
Packit 1fb8d4
Packit Service 5a9772
	if (!(tmp_path = GetKnownPath(KNOWN_PATH_TEMP)))
Packit Service 5a9772
	{
Packit Service 5a9772
		fprintf(stderr, "Failed to get temporary directory!\n");
Packit 1fb8d4
		goto out;
Packit Service 5a9772
	}
Packit 1fb8d4
Packit 1fb8d4
	root = WLog_GetRoot();
Packit 1fb8d4
Packit 1fb8d4
	WLog_SetLogAppenderType(root, WLOG_APPENDER_BINARY);
Packit 1fb8d4
Packit 1fb8d4
	appender = WLog_GetLogAppender(root);
Packit Service 5a9772
	if (!WLog_ConfigureAppender(appender, "outputfilename", "test_w.log"))
Packit 1fb8d4
		goto out;
Packit Service 5a9772
	if (!WLog_ConfigureAppender(appender, "outputfilepath", tmp_path))
Packit 1fb8d4
		goto out;
Packit 1fb8d4
Packit 1fb8d4
	layout = WLog_GetLogLayout(root);
Packit 1fb8d4
	WLog_Layout_SetPrefixFormat(root, layout, "[%lv:%mn] [%fl|%fn|%ln] - ");
Packit 1fb8d4
Packit 1fb8d4
	WLog_OpenAppender(root);
Packit 1fb8d4
Packit 1fb8d4
	logA = WLog_Get("com.test.ChannelA");
Packit 1fb8d4
	logB = WLog_Get("com.test.ChannelB");
Packit 1fb8d4
Packit 1fb8d4
	WLog_SetLogLevel(logA, WLOG_INFO);
Packit 1fb8d4
	WLog_SetLogLevel(logB, WLOG_ERROR);
Packit 1fb8d4
Packit 1fb8d4
	WLog_Print(logA, WLOG_INFO, "this is a test");
Packit 1fb8d4
	WLog_Print(logA, WLOG_WARN, "this is a %dnd %s", 2, "test");
Packit 1fb8d4
	WLog_Print(logA, WLOG_ERROR, "this is an error");
Packit 1fb8d4
	WLog_Print(logA, WLOG_TRACE, "this is a trace output");
Packit 1fb8d4
Packit 1fb8d4
	WLog_Print(logB, WLOG_INFO, "just some info");
Packit 1fb8d4
	WLog_Print(logB, WLOG_WARN, "we're warning a %dnd %s", 2, "time");
Packit 1fb8d4
	WLog_Print(logB, WLOG_ERROR, "we've got an error");
Packit 1fb8d4
	WLog_Print(logB, WLOG_TRACE, "leaving a trace behind");
Packit 1fb8d4
Packit 1fb8d4
	WLog_CloseAppender(root);
Packit 1fb8d4
Packit 1fb8d4
	if ((wlog_file = GetCombinedPath(tmp_path, "test_w.log")))
Packit 1fb8d4
		DeleteFileA(wlog_file);
Packit 1fb8d4
Packit 1fb8d4
	result = 0;
Packit 1fb8d4
out:
Packit 1fb8d4
	free(wlog_file);
Packit 1fb8d4
	free(tmp_path);
Packit 1fb8d4
Packit 1fb8d4
	return result;
Packit 1fb8d4
}