Trigger wxLog auto-creation when getting old logger in wxLogChain ctor.

This ensures that a program that uses wxLogChain or one of the classes
deriving from it, such as wxLogWindow, can do it directly without worrying
about the standard logging being completely suppressed if the default log
target hadn't been instantiated yet.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2013-05-19 12:38:22 +00:00
parent 0553426814
commit 1cdaa5f251

View File

@ -902,7 +902,14 @@ wxLogChain::wxLogChain(wxLog *logger)
m_bPassMessages = true;
m_logNew = logger;
m_logOld = wxLog::SetActiveTarget(this);
// Notice that we use GetActiveTarget() here instead of directly calling
// SetActiveTarget() to trigger wxLog auto-creation: if we're created as
// the first logger, we should still chain with the standard, implicit and
// possibly still not created standard logger instead of disabling normal
// logging entirely.
m_logOld = wxLog::GetActiveTarget();
wxLog::SetActiveTarget(this);
}
wxLogChain::~wxLogChain()