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:
Sylvain Bougnoux 2000-02-23 13:17:14 +00:00
parent a40860394c
commit fe482327a5
2 changed files with 26 additions and 5 deletions

View File

@ -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).
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
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.
release mode and are generated by \helpref{wxLogVerbose}{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, their handling depends on the settings of
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{wxLogTrace}{wxlogtrace} which takes an integer mask or by using
\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
\begin{verbatim}
// wxTRACE_OleCalls is one of standard string masks
wxLogTrace(wxTACE_OleCalls, "IFoo::Bar() called");
wxLogTrace(wxTRACE_OleCalls, "IFoo::Bar() called");
\end{verbatim}
will log the message if it was preceded by
\begin{verbatim}

View File

@ -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.
Thus, you might view {\it wxLogMessage()} as a simple substitute for {\it
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
suppressed entirely based on their importance, which is either impossible or
difficult to do with traditional methods. For example, only error messages, or