// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "log.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
void wxLogBuffer::Flush()
{
- wxMessageOutputBest out;
- out.Printf(_T("%s"), m_str.c_str());
- m_str.clear();
+ if ( !m_str.empty() )
+ {
+ wxMessageOutputBest out;
+ out.Printf(_T("%s"), m_str.c_str());
+ m_str.clear();
+ }
+}
+
+void wxLogBuffer::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
+{
+ switch ( level )
+ {
+ case wxLOG_Trace:
+ case wxLOG_Debug:
+#ifdef __WXDEBUG__
+ // don't put debug messages in the buffer, we don't want to show
+ // them to the user in a msg box, log them immediately
+ {
+ wxString str;
+ TimeStamp(&str);
+ str += szString;
+
+ wxMessageOutputDebug dbgout;
+ dbgout.Printf(_T("%s\n"), str.c_str());
+ }
+#endif // __WXDEBUG__
+ break;
+
+ default:
+ wxLog::DoLog(level, szString, t);
+ }
}
void wxLogBuffer::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
{
wxString str;
TimeStamp(&str);
- (*m_ostr) << str << wxConvertWX2MB(szString) << wxSTD endl;
+ (*m_ostr) << wxConvertWX2MB(str) << wxConvertWX2MB(szString) << wxSTD endl;
}
#endif // wxUSE_STD_IOSTREAM
// if this happens, something is seriously wrong, so don't use _() here
// for safety
wxSprintf(s_szBuf, _T("unknown error %lx"), nErrCode);
- return s_szBuf;
+ return s_szBuf;
}
// copy it to our buffer and free memory
// Crashes on SmartPhone (FIXME)
#if !defined(__SMARTPHONE__) /* of WinCE */
- if( lpMsgBuf != 0 ) {
+ if( lpMsgBuf != 0 )
+ {
wxStrncpy(s_szBuf, (const wxChar *)lpMsgBuf, WXSIZEOF(s_szBuf) - 1);
s_szBuf[WXSIZEOF(s_szBuf) - 1] = wxT('\0');