-void wxLogVerbose(const wxChar *szFormat, ...)
-{
- va_list argptr;
- va_start(argptr, szFormat);
- wxVLogVerbose(szFormat, argptr);
- va_end(argptr);
-}
-
-// debug functions
-#ifdef __WXDEBUG__
-#define IMPLEMENT_LOG_DEBUG_FUNCTION(level) \
- void wxVLog##level(const wxChar *szFormat, va_list argptr) \
- { \
- if ( wxLog::IsEnabled() ) { \
- wxLog::OnLog(wxLOG_##level, \
- wxString::FormatV(szFormat, argptr), time(NULL));\
- } \
- } \
- \
- void wxLog##level(const wxChar *szFormat, ...) \
- { \
- va_list argptr; \
- va_start(argptr, szFormat); \
- wxVLog##level(szFormat, argptr); \
- va_end(argptr); \
- }
-
- void wxVLogTrace(const wxChar *mask, const wxChar *szFormat, va_list argptr)
- {
- if ( wxLog::IsEnabled() && wxLog::IsAllowedTraceMask(mask) ) {
- wxString msg;
- msg << _T("(") << mask << _T(") ") << wxString::FormatV(szFormat, argptr);
-
- wxLog::OnLog(wxLOG_Trace, msg, time(NULL));
- }
- }
-
- void wxLogTrace(const wxChar *mask, const wxChar *szFormat, ...)
- {
- va_list argptr;
- va_start(argptr, szFormat);
- wxVLogTrace(mask, szFormat, argptr);
- va_end(argptr);
- }
-
- void wxVLogTrace(wxTraceMask mask, const wxChar *szFormat, va_list argptr)
- {
- // we check that all of mask bits are set in the current mask, so
- // that wxLogTrace(wxTraceRefCount | wxTraceOle) will only do something
- // if both bits are set.
- if ( wxLog::IsEnabled() && ((wxLog::GetTraceMask() & mask) == mask) ) {
- wxLog::OnLog(wxLOG_Trace, wxString::FormatV(szFormat, argptr), time(NULL));
- }
- }
-
- void wxLogTrace(wxTraceMask mask, const wxChar *szFormat, ...)
- {
- va_list argptr;
- va_start(argptr, szFormat);
- wxVLogTrace(mask, szFormat, argptr);
- va_end(argptr);
- }
-
-#else // release
- #define IMPLEMENT_LOG_DEBUG_FUNCTION(level)
+/* static */
+void
+wxLog::OnLog(wxLogLevel level,
+ const wxString& msg,
+ const wxLogRecordInfo& info)
+{
+ // fatal errors can't be suppressed nor handled by the custom log target
+ // and always terminate the program
+ if ( level == wxLOG_FatalError )
+ {
+ wxSafeShowMessage(wxS("Fatal Error"), msg);
+
+#ifdef __WXWINCE__
+ ExitThread(3);
+#else
+ abort();