Add exemple for redirecting cout
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -62,13 +62,14 @@ without writing a new log target class (which, aside of being a matter of
|
|||||||
several minutes, allows you to do anything you want).
|
several minutes, allows you to do anything you want).
|
||||||
|
|
||||||
The verbose messages are the trace messages which are not disabled in the
|
The verbose messages are the trace messages which are not disabled in the
|
||||||
release mode and are generated by \helpref{wxLogVerbose}{wxlogverbose}. They are not normally
|
release mode and are generated by \helpref{wxLogVerbose}{wxlogverbose}. They
|
||||||
shown to the user because they present little interest, but may be activated,
|
are not normally shown to the user because they present little interest, but
|
||||||
for example, in order to help the user find some program problem.
|
may be activated, for example, in order to help the user find some program
|
||||||
|
problem.
|
||||||
|
|
||||||
As for the (real) trace messages, their handling depends on the settings of
|
As for the (real) trace messages, their handling depends on the settings of
|
||||||
the (application global) {\it trace mask}. There are two ways to specify it:
|
the (application global) {\it trace mask}. There are two ways to specify it:
|
||||||
either by using helpref{SetTraceMask}{wxlogsettracemask} and
|
either by using \helpref{SetTraceMask}{wxlogsettracemask} and
|
||||||
\helpref{GetTraceMask}{wxloggettracemask} and using
|
\helpref{GetTraceMask}{wxloggettracemask} and using
|
||||||
\helpref{wxLogTrace}{wxlogtrace} which takes an integer mask or by using
|
\helpref{wxLogTrace}{wxlogtrace} which takes an integer mask or by using
|
||||||
\helpref{AddTraceMask}{wxlogaddtracemask} for string trace masks.
|
\helpref{AddTraceMask}{wxlogaddtracemask} for string trace masks.
|
||||||
@@ -87,7 +88,7 @@ will do something only if the current trace mask contains both
|
|||||||
{\tt wxTraceRefCount} and {\tt wxTraceOle}, but
|
{\tt wxTraceRefCount} and {\tt wxTraceOle}, but
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
// wxTRACE_OleCalls is one of standard string masks
|
// wxTRACE_OleCalls is one of standard string masks
|
||||||
wxLogTrace(wxTACE_OleCalls, "IFoo::Bar() called");
|
wxLogTrace(wxTRACE_OleCalls, "IFoo::Bar() called");
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
will log the message if it was preceded by
|
will log the message if it was preceded by
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
|
@@ -68,6 +68,26 @@ Although it works just fine under Unix, these messages go strictly nowhere
|
|||||||
under Windows where the stdout of GUI programs is not assigned to anything.
|
under Windows where the stdout of GUI programs is not assigned to anything.
|
||||||
Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it
|
Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it
|
||||||
printf()}.
|
printf()}.
|
||||||
|
|
||||||
|
Moreover {\it wxMSW} doesn't have a {\bf console} as you may have with {\it
|
||||||
|
wxGTK}. Under {\it wxMSW}, a call using {\it cout} just goes nowhere. To
|
||||||
|
cope with this problem, {\it wxWindows} provides a way to redirect {\it cout}
|
||||||
|
calls to \helpref{wxTreeCtrl}{wxtreectrl}, {\it i.e.}:
|
||||||
|
{\small
|
||||||
|
\begin{verbatim}
|
||||||
|
wxLogWindow *logger=new wxLogWindow(your_frame,"Logger");
|
||||||
|
cout=*new ostream(logger->GetTextCtrl());
|
||||||
|
wxLog::SetActiveTarget(logger);
|
||||||
|
\end{verbatim}
|
||||||
|
}
|
||||||
|
On the opposite, if you like your {\it wxLogXXX} calls to behave as a {\it cout}
|
||||||
|
call does, just write :
|
||||||
|
{\small
|
||||||
|
\begin{verbatim}
|
||||||
|
wxLog *logger=new wxLogStream(&cout);
|
||||||
|
wxLog::SetActiveTarget(logger);
|
||||||
|
\end{verbatim}
|
||||||
|
}
|
||||||
\item{\bf Flexibility} The output of wxLog functions can be redirected or
|
\item{\bf Flexibility} The output of wxLog functions can be redirected or
|
||||||
suppressed entirely based on their importance, which is either impossible or
|
suppressed entirely based on their importance, which is either impossible or
|
||||||
difficult to do with traditional methods. For example, only error messages, or
|
difficult to do with traditional methods. For example, only error messages, or
|
||||||
|
Reference in New Issue
Block a user