#undef wxLOG_COMPONENT
const char *wxLOG_COMPONENT = "";
-#if wxUSE_THREADS
-
-wxTLS_TYPE(wxThreadSpecificInfo) wxThreadInfoVar;
-
// this macro allows to define an object which will be initialized before any
// other function in this file is called: this is necessary to allow log
// functions to be used during static initialization (this is not advisable
\
type *gs_##name##Ptr = &Get##name()
+#if wxUSE_THREADS
+
+wxTLS_TYPE(wxThreadSpecificInfo) wxThreadInfoVar;
+
namespace
{
// this one is used for protecting ms_aTraceMasks from concurrent access
WX_DEFINE_LOG_CS(TraceMask);
-// and this one is used for GetComponentLevels()
+// and this one is used for GetComponentLevels()
WX_DEFINE_LOG_CS(Levels);
} // anonymous namespace
m_logOld->LogRecord(level, msg, info);
// and also send it to the new one
- if ( m_logNew && m_logNew != this )
- m_logNew->LogRecord(level, msg, info);
+ if ( m_logNew )
+ {
+ // don't call m_logNew->LogRecord() to avoid infinite recursion when
+ // m_logNew is this object itself
+ if ( m_logNew != this )
+ m_logNew->LogRecord(level, msg, info);
+ else
+ wxLog::DoLogRecord(level, msg, info);
+ }
}
#ifdef __VISUALC__