X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c67daf87774c71ae9f73af9969008af220e52a11..d069d02e1e27f6d924c3b28173ff81d87ec8b072:/include/wx/log.h diff --git a/include/wx/log.h b/include/wx/log.h index feb245959a..0c178347d9 100644 --- a/include/wx/log.h +++ b/include/wx/log.h @@ -69,7 +69,13 @@ public: // sink function static void OnLog(wxLogLevel level, const char *szString) - { if ( ms_pLogger != 0 ) ms_pLogger->DoLog(level, szString); } + { + wxLog *pLogger = GetActiveTarget(); + if ( pLogger ) + { + pLogger->DoLog(level, szString); + } + } // message buffering // flush shows all messages if they're not logged immediately @@ -83,11 +89,12 @@ public: // only one sink is active at each moment // get current log target, will call wxApp::CreateLogTarget() to create one - // if + // if none exists static wxLog *GetActiveTarget(); - // change log target, pLogger = NULL disables logging, + // change log target, pLogger = NULL disables logging. if bNoFlashOld is true, + // the old log target isn't flashed which might lead to loss of messages! // returns the previous log target - static wxLog *SetActiveTarget(wxLog *pLogger); + static wxLog *SetActiveTarget(wxLog *pLogger, bool bNoFlashOld = FALSE); // functions controlling the default wxLog behaviour // verbose mode is activated by standard command-line '-verbose' option @@ -276,7 +283,7 @@ class WXDLLEXPORT wxLogNull { public: // ctor saves old log target, dtor restores it - wxLogNull() { m_pPrevLogger = wxLog::SetActiveTarget((wxLog *) NULL); } + wxLogNull() { m_pPrevLogger = wxLog::SetActiveTarget((wxLog *)NULL, TRUE); } ~wxLogNull() { (void)wxLog::SetActiveTarget(m_pPrevLogger); } private: