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; }
BOOL WLog_Uninit(void) { DWORD index; wLog* child = NULL; wLog* root = g_RootLog; if (!root) return FALSE; for (index = 0; index < root->ChildrenCount; index++) { child = root->Children[index]; WLog_Free(child); } WLog_Free(root); g_RootLog = NULL; return TRUE; }
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; }