- Added wxProtocol::SetDefaultTimeout(); the default timeout for both wxHTTP and wxFTP
protocols is 60 seconds.
- Added wxStrnlen() for safe computation of string length.
-- Added wxImage::Clear() (troelsk)
+- Added wxImage::Clear() (troelsk).
+- Added wxLog::Log().
All (Unix):
// change it otherwise)
static void TimeStamp(wxString *str);
+ // this method should only be called from derived classes DoLog()
+ // implementations and shouldn't be called directly, use logging functions
+ // instead
+ void Log(wxLogLevel level, const wxString& msg, time_t t)
+ {
+ DoLog(level, msg, t);
+ }
+
// make dtor virtual for all derived classes
virtual ~wxLog();
#endif
protected:
- // the logging functions that can be overriden
+ // the logging functions that can be overridden
// default DoLog() prepends the time stamp and a prefix corresponding
// to the message to szString and then passes it to DoLogString()
Forwards the message at specified level to the @e DoLog() function of the
active log target if there is any, does nothing otherwise.
*/
- static void OnLog(wxLogLevel level, const wxString& szString, time_t t);
+ static void OnLog(wxLogLevel level, const wxString& msg, time_t t);
/**
Remove the @a mask from the list of allowed masks for
*/
static void Suspend();
+ /**
+ 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:
/**
{
// let the previous logger show it
if ( m_logOld && IsPassingMessages() )
- {
- // bogus cast just to access protected DoLog
- ((wxLogChain *)m_logOld)->DoLog(level, szString, t);
- }
+ m_logOld->Log(level, szString, t);
+ // and also send it to the new one
if ( m_logNew && m_logNew != this )
- {
- // as above...
- ((wxLogChain *)m_logNew)->DoLog(level, szString, t);
- }
+ m_logNew->Log(level, szString, t);
}
#ifdef __VISUALC__