if ( pLog != NULL && wxLog::IsAllowedTraceMask(mask) ) {
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
+ wxChar *p = s_szBuf;
+ size_t len = WXSIZEOF(s_szBuf);
+ strncpy(s_szBuf, _T("("), len);
+ len -= 1; // strlen("(")
+ p += 1;
+ strncat(p, mask, len);
+ size_t lenMask = wxStrlen(mask);
+ len -= lenMask;
+ p += lenMask;
+
+ strncat(p, _T(") "), len);
+ len -= 2;
+ p += 2;
+
va_list argptr;
va_start(argptr, szFormat);
- wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
+ wxVsnprintf(p, len, szFormat, argptr);
va_end(argptr);
wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL));
case wxLOG_Trace:
case wxLOG_Debug:
#ifdef __WXDEBUG__
- DoLogString(szString, t);
-#endif
+ {
+ wxString msg = level == wxLOG_Trace ? wxT("Trace: ")
+ : wxT("Debug: ");
+ msg << szString;
+ DoLogString(msg, t);
+ }
+#endif // Debug
break;
}
}
#if defined(__WXMSW__) && wxUSE_GUI
OutputDebugString(str + wxT("\r\n"));
#endif // MSW
+#if defined(__WXMAC__) && wxUSE_GUI
+ debugstr(str + wxT("\r\n"));
+#endif // MSW
}
// ----------------------------------------------------------------------------
bool wxLog::ms_doLog = TRUE;
bool wxLog::ms_bAutoCreate = TRUE;
-const wxChar *wxLog::ms_timestamp = wxT("%X"); // time only, no date
+size_t wxLog::ms_suspendCount = 0;
+
+#if wxUSE_GUI
+ const wxChar *wxLog::ms_timestamp = wxT("%X"); // time only, no date
+#else
+ const wxChar *wxLog::ms_timestamp = NULL; // save space
+#endif
wxTraceMask wxLog::ms_ulTraceMask = (wxTraceMask)0;
wxArrayString wxLog::ms_aTraceMasks;