added wxLog::ClearTraceMasks()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2001-05-17 10:11:34 +00:00
parent 1912918cce
commit 36bd690299
3 changed files with 36 additions and 4 deletions

View File

@ -30,8 +30,9 @@ No base class
The functions in this section work with and manipulate the active log target. 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 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 {\it DoLog()} of the active log target if any. Get/Set methods are used to
install/query the current active target and, finally, {\it install/query the current active target and, finally,
DontCreateOnDemand()} disables the automatic creation of a standard log target \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 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 and shouldn't be used in other situations because it may easily lead to a loss
of messages. of messages.
@ -123,6 +124,7 @@ window on the corresponding error message. If you wish to enable it, please use
\helpref{AddTraceMask}{wxlogaddtracemask}\\ \helpref{AddTraceMask}{wxlogaddtracemask}\\
\helpref{RemoveTraceMask}{wxlogremovetracemask}\\ \helpref{RemoveTraceMask}{wxlogremovetracemask}\\
\helpref{ClearTraceMasks}{wxlogcleartracemasks}\\
\helpref{IsAllowedTraceMask}{wxlogisallowedtracemask}\\ \helpref{IsAllowedTraceMask}{wxlogisallowedtracemask}\\
\helpref{SetVerbose}{wxlogsetverbose}\\ \helpref{SetVerbose}{wxlogsetverbose}\\
\helpref{GetVerbose}{wxloggetverbose}\\ \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} \membersection{wxLog::OnLog}\label{wxlogonlog}
\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ message}} \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} \func{static void}{DontCreateOnDemand}{\void}
Instructs wxLog to not create new log targets on the fly if there is none 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}

View File

@ -161,7 +161,7 @@ public:
void SetVerbose(bool bVerbose = TRUE) { m_bVerbose = bVerbose; } void SetVerbose(bool bVerbose = TRUE) { m_bVerbose = bVerbose; }
// should GetActiveTarget() try to create a new log object if the // should GetActiveTarget() try to create a new log object if the
// current is NULL? // current is NULL?
static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; } static void DontCreateOnDemand();
// trace mask (see wxTraceXXX constants for details) // trace mask (see wxTraceXXX constants for details)
static void SetTraceMask(wxTraceMask ulMask) { ms_ulTraceMask = ulMask; } static void SetTraceMask(wxTraceMask ulMask) { ms_ulTraceMask = ulMask; }
@ -169,6 +169,8 @@ public:
static void AddTraceMask(const wxString& str) { ms_aTraceMasks.Add(str); } static void AddTraceMask(const wxString& str) { ms_aTraceMasks.Add(str); }
// add string trace mask // add string trace mask
static void RemoveTraceMask(const wxString& str); 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 // sets the timestamp string: this is used as strftime() format string
// for the log targets which add time stamps to the messages - set it // for the log targets which add time stamps to the messages - set it

View 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) void wxLog::RemoveTraceMask(const wxString& str)
{ {
int index = ms_aTraceMasks.Index(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) void wxLog::TimeStamp(wxString *str)
{ {
if ( ms_timestamp ) if ( ms_timestamp )