1998-09-30 00:48:01 +00:00
|
|
|
\section{\class{wxLog}}\label{wxlog}
|
|
|
|
|
|
|
|
wxLog class defines the interface for the {\it log targets} used by wxWindows
|
|
|
|
logging functions as explained in the \helpref{wxLog overview}{wxlogoverview}.
|
|
|
|
The only situations when you need to directly use this class is when you want
|
|
|
|
to derive your own log target because the existing ones don't satisfy your
|
|
|
|
needs. Another case is if you wish to customize the behaviour of the standard
|
|
|
|
logging classes (all of which respect the wxLog settings): for example, set
|
|
|
|
which trace messages are logged and which are not or change (or even remove
|
|
|
|
completely) the timestamp on the messages.
|
|
|
|
|
|
|
|
Otherwise, it is completely hidden behind the {\it wxLogXXX()} functions and
|
|
|
|
you may not even know about its existence.
|
|
|
|
|
|
|
|
See \helpref{log overview}{wxlogoverview} for the descriptions of wxWindows
|
|
|
|
logging facilities.
|
|
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
No base class
|
|
|
|
|
|
|
|
\latexignore{\rtfignore{\wxheading{Function groups}}}
|
|
|
|
|
|
|
|
\membersection{Static functions}
|
|
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
|
|
|
|
|
|
\helpref{OnLog}{wxlogonlog}\\
|
|
|
|
\helpref{GetActiveTarget}{wxloggetactivetarget}\\
|
1998-10-07 11:04:27 +00:00
|
|
|
\helpref{SetActiveTarget}{wxlogsetactivetarget}\\
|
1998-09-30 00:48:01 +00:00
|
|
|
\helpref{DontCreateOnDemand}{wxlogdontcreateondemand}
|
|
|
|
|
|
|
|
\membersection{Message buffering}
|
|
|
|
|
|
|
|
Some of wxLog implementations, most notably the standard
|
1998-11-17 22:44:47 +00:00
|
|
|
wxLogGui class, buffer the messages (for example, to avoid
|
1998-09-30 00:48:01 +00:00
|
|
|
showing the user a zillion of modal message boxes one after another - which
|
|
|
|
would be really annoying). {\it Flush()} shows them all and clears the buffer
|
|
|
|
contents. Although this function doesn't do anything if the buffer is already
|
|
|
|
empty, {\it HasPendingMessages()} is also provided which allows to explicitly
|
|
|
|
verify it.
|
|
|
|
|
|
|
|
\helpref{Flush}{wxlogflush}\\
|
|
|
|
\helpref{HasPendingMessages}{haspendingmessages}
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{Customization}\label{wxlogcustomization}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
The functions below allow some limited customization of wxLog behaviour
|
|
|
|
without writing a new log target class (which, aside of being a matter of
|
|
|
|
several minutes, allows you to do anything you want).
|
|
|
|
|
|
|
|
The verbose messages are the trace messages which are not disabled in the
|
|
|
|
release mode and are generated by {\it wxLogVerbose()}. They are not normally
|
|
|
|
shown to the user because they present little interest, but may be activated,
|
|
|
|
for example, in order to help the user find some program problem.
|
|
|
|
|
|
|
|
As for the (real) trace messages, they come in different kinds:
|
1998-10-07 11:04:27 +00:00
|
|
|
|
1998-09-30 00:48:01 +00:00
|
|
|
\begin{itemize}\itemsep=0pt
|
|
|
|
\item{wxTraceMemAlloc} for the messages about creating and deleting objects
|
|
|
|
\item{wxTraceMessages} for tracing the windowing system messages/events
|
|
|
|
\item{wxTraceResAlloc} for allocating and releasing the system ressources
|
|
|
|
\item{wxTraceRefCount} for reference counting related messages
|
|
|
|
\item{wxTraceOleCalls} for the OLE (or COM) method invocations (wxMSW only)
|
|
|
|
\item{other} the remaining bits are free for user-defined trace levels
|
|
|
|
\end{itemize}
|
|
|
|
|
|
|
|
The trace mask is a bit mask which tells which (if any) of these trace
|
|
|
|
messages are going to be actually logged. For the trace message to appear
|
|
|
|
somewhere, all the bits in the mask used in the call to {\it wxLogTrace()}
|
|
|
|
function must be set in the current trace mask. For example,
|
|
|
|
\begin{verbatim}
|
|
|
|
wxLogTrace(wxTraceRefCount | wxTraceOle, "Active object ref count: %d", nRef);
|
|
|
|
\end{verbatim}
|
|
|
|
will do something only if the current trace mask contains both wxTraceRefCount
|
|
|
|
and wxTraceOle.
|
|
|
|
|
|
|
|
Finally, the {\it wxLog::DoLog()} function automatically prepends a time stamp
|
|
|
|
to all the messages. The format of the time stamp may be changed: it can be
|
|
|
|
any string with \% specificators fully described in the documentation of the
|
|
|
|
standard {\it strftime()} function. For example, the default format is
|
|
|
|
"[\%d/\%b/\%y \%H:\%M:\%S] " which gives something like "[17/Sep/98 22:10:16] "
|
|
|
|
(without quotes) for the current date. Setting an empty string as the time
|
|
|
|
format disables timestamping of the messages completely.
|
|
|
|
|
|
|
|
\helpref{SetVerbose}{wxlogsetverbose}\\
|
|
|
|
\helpref{GetVerbose}{wxloggetverbose}\\
|
|
|
|
\helpref{SetTimeStampFormat}{wxlogsettimestampformat}\\
|
|
|
|
\helpref{GetTimeStampFormat}{wxloggettimestampformat}\\
|
|
|
|
\helpref{SetTraceMask}{wxlogsettracemask}\\
|
|
|
|
\helpref{GetTraceMask}{wxloggettracemask}
|
|
|
|
|
|
|
|
%%%%% MEMBERS HERE %%%%%
|
|
|
|
\helponly{\insertatlevel{2}{
|
|
|
|
|
|
|
|
\wxheading{Members}
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
\membersection{wxLog::OnLog}\label{wxlogonlog}
|
|
|
|
|
|
|
|
\func{static void}{OnLog}{\param{wxLogLevel }{ level}, \param{const char * }{ 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::GetActiveTarget}\label{wxloggetactivetarget}
|
|
|
|
|
|
|
|
\func{static wxLog *}{GetActiveTarget}{\void}
|
|
|
|
|
|
|
|
Returns the pointer to the active log target (may be NULL).
|
|
|
|
|
|
|
|
\membersection{wxLog::SetActiveTarget}\label{wxlogsetactivetarget}
|
|
|
|
|
|
|
|
\func{static wxLog *}{SetActiveTarget}{\param{wxLog * }{ logtarget}}
|
|
|
|
|
|
|
|
Sets the specified log target as the active one. Returns the pointer to the
|
|
|
|
previous active log target (may be NULL).
|
|
|
|
|
|
|
|
\membersection{wxLog::DontCreateOnDemand}\label{wxlogdontcreateondemand}
|
|
|
|
|
|
|
|
\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.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::Flush}\label{wxlogflush}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
\func{virtual void}{Flush}{\void}
|
|
|
|
|
|
|
|
Shows all the messages currently in buffer and clears it. If the buffer
|
|
|
|
is already empty, nothing happens.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::HasPendingMessages}\label{haspendingmessages}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
\constfunc{bool}{HasPendingMessages}{\void}
|
|
|
|
|
|
|
|
Returns true if there are any messages in the buffer (not yet shown to the
|
|
|
|
user). (Almost) for internal use only.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::SetVerbose}\label{wxlogsetverbose}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
\func{void}{SetVerbose}{\param{bool }{ verbose = TRUE}}
|
|
|
|
|
|
|
|
Activates or desactivates verbose mode in which the verbose messages are
|
|
|
|
logged as the normal ones instead of being silently dropped.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::GetVerbose}\label{wxloggetverbose}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
\constfunc{bool}{GetVerbose}{\void}
|
|
|
|
|
|
|
|
Returns whether the verbose mode is currently active.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::SetTimeStampFormat}\label{wxlogsettimestampformat}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
\func{void}{SetTimeStampFormat}{\param{const char * }{ 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 an empty string to this function disables message timestamping.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::GetTimeStampFormat}\label{wxloggettimestampformat}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
\constfunc{const char *}{GetTimeStampFormat}{\void}
|
|
|
|
|
|
|
|
Returns the current timestamp format string.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::SetTraceMask}\label{wxlogsettracemask}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
|
|
|
\func{static void}{SetTraceMask}{\param{wxTraceMask }{ mask}}
|
|
|
|
|
|
|
|
Sets the trace mask, see \helpref{Customization}{wxlogcustomization}
|
|
|
|
section for details.
|
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
\membersection{wxLog::GetTraceMask}\label{wxloggettracemask}
|
1998-09-30 00:48:01 +00:00
|
|
|
|
1998-10-07 11:04:27 +00:00
|
|
|
Returns the current trace mask, see \helpref{Customization}{wxlogcustomization} section
|
|
|
|
for details.
|
1998-12-28 12:35:49 +00:00
|
|
|
|