]> git.saurik.com Git - wxWidgets.git/commitdiff
Trigger wxLog auto-creation when getting old logger in wxLogChain ctor.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 19 May 2013 12:38:22 +0000 (12:38 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 19 May 2013 12:38:22 +0000 (12:38 +0000)
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

src/common/log.cpp

index 5135eadaa33799aa29055274cdba6870b0bbdb6a..53ce213b5080316dacd55dd3efffa6ccd398a56a 100644 (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()