<wx/log.h>
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
\latexignore{\rtfignore{\wxheading{Function groups}}}
-\membersection{Static functions}\label{staticlogfunctions}
+\membersection{Global functions}
The functions in this section work with and manipulate the active log target.
The \helpref{OnLog()}{wxlogonlog} is called by the {\it wxLogXXX()} functions
\helpref{SetTimestamp}{wxlogsettimestamp}\\
\helpref{GetTimestamp}{wxloggettimestamp}\\
\helpref{SetTraceMask}{wxlogsettracemask}\\
-\helpref{GetTraceMask}{wxloggettracemask}
+\helpref{GetTraceMask}{wxloggettracemask}\\
+\helpref{SetRepetitionCounting}{wxlogsetrepetitioncounting}\\
+\helpref{GetRepetitionCounting}{wxloggetrepetitioncounting}
%%%%% MEMBERS HERE %%%%%
\helponly{\insertatlevel{2}{
\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 wxString\& }{ message}}
Forwards the message at specified level to the {\it DoLog()} function of the
active log target if there is any, does nothing otherwise.
\membersection{wxLog::DoLog}\label{wxlogdolog}
-\func{virtual void}{DoLog}{\param{wxLogLevel }{level}, \param{const wxChar }{*msg}, \param{time\_t }{timestamp}}
+\func{virtual void}{DoLog}{\param{wxLogLevel }{level}, \param{const wxString\& }{msg}, \param{time\_t }{timestamp}}
Called to process the message of the specified severity. {\it msg} is the text
of the message as specified in the call of {\it wxLogXXX()} function which
\membersection{wxLog::DoLogString}\label{wxlogdologstring}
-\func{virtual void}{DoLogString}{\param{const wxChar }{*msg}, \param{time\_t }{timestamp}}
+\func{virtual void}{DoLogString}{\param{const wxString\& }{msg}, \param{time\_t }{timestamp}}
-Called to log the specified string. The timestamp is already included into the
+Called to log the specified string. The timestamp is already included in the
string but still passed to this function.
A simple implementation may just send the string to {\tt stdout} or, better,
Returns the current log level limit.
+\membersection{wxLog::SetRepetitionCounting}\label{wxlogsetrepetitioncounting}
+
+\func{static void}{SetRepetitionCounting}{\param{bool }{ repetCounting = true}}
+
+Enables logging mode in which a log message is logged once, and in case exactly
+the same message successively repeats one or more times, only the number of
+repetitions is logged.
+
+\membersection{wxLog::GetRepetitionCounting}\label{wxloggetrepetitioncounting}
+
+\func{static bool}{GetRepetitionCounting}{\void}
+
+Returns whether the repetition counting mode is enabled.
+
+
\membersection{wxLog::SetTimestamp}\label{wxlogsettimestamp}
-\func{void}{SetTimestamp}{\param{const char * }{ format}}
+\func{static void}{SetTimestamp}{\param{const wxString\&}{ format}}
Sets the timestamp format prepended by the default log targets to all
messages. The string may contain any normal characters as well as \%
prefixed format specificators, see {\it strftime()} manual for details.
-Passing a NULL value (not empty string) to this function disables message timestamping.
+Passing an empty string to this function disables message time stamping.
+
+\membersection{wxLog::DisableTimestamp}\label{wxlogdisabletimestamp}
+
+\func{void}{SetTimestamp}{\param{const wxString\&}{ format}}
+
+Disables time stamping of the log messages.
+
+\newsince{2.9}
\membersection{wxLog::GetTimestamp}\label{wxloggettimestamp}
-\constfunc{const char *}{GetTimestamp}{\void}
+\func{static const wxString\&}{GetTimestamp}{\void}
Returns the current timestamp format string.
\membersection{wxLog::GetTraceMask}\label{wxloggettracemask}
+\func{static wxTraceMask}{GetTraceMask}{\void}
+
Returns the current trace mask, see \helpref{Customization}{wxlogcustomization} section
for details.
\membersection{wxLog::IsAllowedTraceMask}\label{wxlogisallowedtracemask}
-\func{static bool}{IsAllowedTraceMask}{\param{const wxChar *}{mask}}
+\func{static bool}{IsAllowedTraceMask}{\param{const wxString\& }{mask}}
Returns true if the {\it mask} is one of allowed masks for
\helpref{wxLogTrace}{wxlogtrace}.
<wx/log.h>
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxLogChain::wxLogChain}\label{wxlogchainctor}
Destroys the previous log target.
+\membersection{wxLogChain::DetachOldLog}\label{wxlogchaindetacholdlog}
+
+\func{void}{DetachOldLog}{\void}
+
+Detaches the old log target so it won't be destroyed when the wxLogChain object
+is destroyed.
+
\membersection{wxLogChain::GetOldLog}\label{wxlogchaingetoldlog}
\constfunc{wxLog *}{GetOldLog}{\void}
<wx/log.h>
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxLogNull::wxLogNull}\label{wxlognullctor}
Resumes logging.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogPassThrough %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogInterposer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{\class{wxLogPassThrough}}\label{wxlogpassthrough}
+\section{\class{wxLogInterposer}}\label{wxloginterposer}
A special version of \helpref{wxLogChain}{wxlogchain} which uses itself as the
-new log target. Maybe more clearly, it means that this is a log target which
-forwards the log messages to the previously installed one in addition to
+new log target. It forwards log messages to the previously installed one in addition to
processing them itself.
Unlike \helpref{wxLogChain}{wxlogchain} which is usually used directly as is,
this class must be derived from to implement \helpref{DoLog}{wxlogdolog}
and/or \helpref{DoLogString}{wxlogdologstring} methods.
+wxLogInterposer destroys the previous log target in its destructor. If you
+don't want this to happen, use wxLogInterposerTemp instead.
+
+\wxheading{Derived from}
+
+\helpref{wxLogChain}{wxlogchain}\\
+\helpref{wxLog}{wxlog}
+
+\wxheading{Include files}
+
+<wx/log.h>
+
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxLogInterposer::wxLogInterposer}\label{wxloginterposerctor}
+
+The default constructor installs this object as the current active log target.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogInterposerTemp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{\class{wxLogInterposerTemp}}\label{wxloginterposertemp}
+
+A special version of \helpref{wxLogChain}{wxlogchain} which uses itself as the
+new log target. It forwards log messages to the previously installed one in addition to
+processing them itself. Unlike \helpref{wxLogInterposer}{wxloginterposer}, it doesn't
+delete the old target which means it can be used to temporarily redirect log output.
+
+As per wxLogInterposer, this class must be derived from to implement \helpref{DoLog}{wxlogdolog}
+and/or \helpref{DoLogString}{wxlogdologstring} methods.
+
\wxheading{Derived from}
-\helpref{wxLogChain}{wxlogchain}
+\helpref{wxLogChain}{wxlogchain}\\
+\helpref{wxLog}{wxlog}
\wxheading{Include files}
<wx/log.h>
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxLogPassThrough::wxLogPassThrough}\label{wxlogpassthroughctor}
+\membersection{wxLogInterposerTemp::wxLogInterposerTemp}\label{wxloginterposertempctor}
-Default ctor installs this object as the current active log target.
+The default constructor installs this object as the current active log target.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxLogStderr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<wx/log.h>
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
\wxheading{See also}
\helpref{wxLogStream}{wxlogstream}
<wx/log.h>
+\wxheading{Library}
+
+\helpref{wxBase}{librarieslist}
+
\wxheading{See also}
\helpref{wxLogStderr}{wxlogstderr},\\
\wxheading{See also}
-\helpref{wxLogTextCtrl}{wxlogtextctrl},\\
+\helpref{wxTextCtrl}{wxtextctrl},\\
\helpref{wxStreamToTextRedirector}{wxstreamtotextredirector}
\latexignore{\rtfignore{\wxheading{Members}}}
\wxheading{Derived from}
-\helpref{wxLogPassThrough}{wxlogpassthrough}
+\helpref{wxLogInterposer}{wxloginterposer}\\
+\helpref{wxLogChain}{wxlogchain}\\
+\helpref{wxLog}{wxlog}
\wxheading{Include files}