+
+ /**
+ Log the given message.
+
+ This function should only be called from the DoLog() implementations in
+ the derived classes (which can't call wxLog::DoLog() directly as it is
+ protected), it should not be used for logging new messages which can be
+ only sent to the currently active logger using OnLog() which also
+ checks if the logging (for this level) is enabled while this method
+ just directly calls DoLog().
+
+ Example of use of this class from wxLogChain:
+ @code
+ void wxLogChain::DoLog(wxLogLevel level, const wxString& msg, time_t t)
+ {
+ // let the previous logger show it
+ if ( m_logOld && IsPassingMessages() )
+ m_logOld->Log(level, msg, t);
+
+ // and also send it to the new one
+ if ( m_logNew && m_logNew != this )
+ m_logNew->Log(level, msg, t);
+ }
+ @endcode
+
+ @since 2.9.0
+ */
+ void Log(wxLogLevel level, const wxString& msg, time_t timestamp);
+
+protected:
+
+ /**
+ Called to process the message of the specified severity. @a msg is the text
+ of the message as specified in the call of @e wxLogXXX() function which
+ generated it and @a timestamp is the moment when the message was generated.
+
+ The base class version prepends the timestamp to the message, adds a prefix
+ corresponding to the log level and then calls
+ DoLogString() with the resulting string.
+ */
+ virtual void DoLog(wxLogLevel level, const wxString& msg, time_t timestamp);
+
+ /**
+ 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 @c stdout or, better,
+ @c stderr.
+ */
+ virtual void DoLogString(const wxString& msg, time_t timestamp);