]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxLog::ClearTraceMasks()
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 May 2001 10:11:34 +0000 (10:11 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 May 2001 10:11:34 +0000 (10:11 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/log.tex
include/wx/log.h
src/common/log.cpp

index 03c4fa98bc1cc7e3bdb395782f24c8283c44aa33..7de410ebbd22f5ee5e4a2d832fcfe6f790059f10 100644 (file)
@@ -30,8 +30,9 @@ No base class
 The functions in this section work with and manipulate the active log target.
 The {\it OnLog()} is called by the {\it wxLogXXX()} functions and invokes the 
 {\it DoLog()} of the active log target if any. Get/Set methods are used to
 The functions in this section work with and manipulate the active log target.
 The {\it OnLog()} is called by the {\it wxLogXXX()} functions and invokes the 
 {\it DoLog()} of the active log target if any. Get/Set methods are used to
-install/query the current active target and, finally, {\it
-DontCreateOnDemand()} disables the automatic creation of a standard log target
+install/query the current active target and, finally, 
+\helpref{DontCreateOnDemand()}{wxlogdontcreateondemand} 
+disables the automatic creation of a standard log target
 if none actually exists. It is only useful when the application is terminating
 and shouldn't be used in other situations because it may easily lead to a loss
 of messages.
 if none actually exists. It is only useful when the application is terminating
 and shouldn't be used in other situations because it may easily lead to a loss
 of messages.
@@ -123,6 +124,7 @@ window on the corresponding error message. If you wish to enable it, please use
 
 \helpref{AddTraceMask}{wxlogaddtracemask}\\
 \helpref{RemoveTraceMask}{wxlogremovetracemask}\\
 
 \helpref{AddTraceMask}{wxlogaddtracemask}\\
 \helpref{RemoveTraceMask}{wxlogremovetracemask}\\
+\helpref{ClearTraceMasks}{wxlogcleartracemasks}\\
 \helpref{IsAllowedTraceMask}{wxlogisallowedtracemask}\\
 \helpref{SetVerbose}{wxlogsetverbose}\\
 \helpref{GetVerbose}{wxloggetverbose}\\
 \helpref{IsAllowedTraceMask}{wxlogisallowedtracemask}\\
 \helpref{SetVerbose}{wxlogsetverbose}\\
 \helpref{GetVerbose}{wxloggetverbose}\\
@@ -147,6 +149,15 @@ Add the {\it mask} to the list of allowed masks for
 
 See also: \helpref{RemoveTraceMask}{wxlogremovetracemask}
 
 
 See also: \helpref{RemoveTraceMask}{wxlogremovetracemask}
 
+\membersection{wxLog::ClearTraceMasks}\label{wxlogcleartracemasks}
+
+\func{static void}{ClearTraceMasks}{\void}
+
+Removes all trace masks previously set with 
+\helpref{AddTraceMask}{wxlogaddtracemask}.
+
+See also: \helpref{RemoveTraceMask}{wxlogremovetracemask}
+
 \membersection{wxLog::OnLog}\label{wxlogonlog}
 
 \func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}}
 \membersection{wxLog::OnLog}\label{wxlogonlog}
 
 \func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}}
@@ -172,7 +183,11 @@ previous active log target (may be NULL).
 \func{static void}{DontCreateOnDemand}{\void}
 
 Instructs wxLog to not create new log targets on the fly if there is none
 \func{static void}{DontCreateOnDemand}{\void}
 
 Instructs wxLog to not create new log targets on the fly if there is none
-currently. (Almost) for internal use only.
+currently. (Almost) for internal use only: it is supposed to be called by the
+application shutdown code.
+
+Note that this function also calls 
+\helpref{ClearTraceMasks}{wxlogcleartracemasks}.
 
 \membersection{wxLog::Flush}\label{wxlogflush}
 
 
 \membersection{wxLog::Flush}\label{wxlogflush}
 
index 6c2e4cdd51d0ffd160286d9f47f13ade2b53680a..43fae9c89ea84bdebe5528e4dbb06f91b32a082c 100644 (file)
@@ -161,7 +161,7 @@ public:
     void SetVerbose(bool bVerbose = TRUE) { m_bVerbose = bVerbose; }
         // should GetActiveTarget() try to create a new log object if the
         // current is NULL?
     void SetVerbose(bool bVerbose = TRUE) { m_bVerbose = bVerbose; }
         // should GetActiveTarget() try to create a new log object if the
         // current is NULL?
-    static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; }
+    static void DontCreateOnDemand();
 
         // trace mask (see wxTraceXXX constants for details)
     static void SetTraceMask(wxTraceMask ulMask) { ms_ulTraceMask = ulMask; }
 
         // trace mask (see wxTraceXXX constants for details)
     static void SetTraceMask(wxTraceMask ulMask) { ms_ulTraceMask = ulMask; }
@@ -169,6 +169,8 @@ public:
     static void AddTraceMask(const wxString& str) { ms_aTraceMasks.Add(str); }
         // add string trace mask
     static void RemoveTraceMask(const wxString& str);
     static void AddTraceMask(const wxString& str) { ms_aTraceMasks.Add(str); }
         // add string trace mask
     static void RemoveTraceMask(const wxString& str);
+        // remove all string trace masks
+    static void ClearTraceMasks();
 
         // sets the timestamp string: this is used as strftime() format string
         // for the log targets which add time stamps to the messages - set it
 
         // sets the timestamp string: this is used as strftime() format string
         // for the log targets which add time stamps to the messages - set it
index 1ec43bfa0a0178e85112f1bcbcf2344fe439decd..a60e289df5a4c5f1a412959d20fda311998aa469 100644 (file)
@@ -323,6 +323,16 @@ wxLog *wxLog::SetActiveTarget(wxLog *pLogger)
     return pOldLogger;
 }
 
     return pOldLogger;
 }
 
+void wxLog::DontCreateOnDemand()
+{
+    ms_bAutoCreate = FALSE;
+
+    // this is usually called at the end of the program and we assume that it
+    // is *always* called at the end - so we free memory here to avoid false
+    // memory leak reports from wxWin  memory tracking code
+    ClearTraceMasks();
+}
+
 void wxLog::RemoveTraceMask(const wxString& str)
 {
     int index = ms_aTraceMasks.Index(str);
 void wxLog::RemoveTraceMask(const wxString& str)
 {
     int index = ms_aTraceMasks.Index(str);
@@ -330,6 +340,11 @@ void wxLog::RemoveTraceMask(const wxString& str)
         ms_aTraceMasks.Remove((size_t)index);
 }
 
         ms_aTraceMasks.Remove((size_t)index);
 }
 
+void wxLog::ClearTraceMasks()
+{
+    ms_aTraceMasks.Clear();
+}
+
 void wxLog::TimeStamp(wxString *str)
 {
     if ( ms_timestamp )
 void wxLog::TimeStamp(wxString *str)
 {
     if ( ms_timestamp )