Added SetLogBuffer method.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
c1beeb57cf
commit
04662def27
@ -103,6 +103,12 @@ public:
|
||||
// ctor
|
||||
wxLog();
|
||||
|
||||
// Internal buffer.
|
||||
// Allow replacement of the fixed size static buffer with
|
||||
// a user allocated one. Pass in NULL to restore the
|
||||
// built in static buffer.
|
||||
static wxChar *SetLogBuffer( wxChar *buf, size_t size = 0 );
|
||||
|
||||
// these functions allow to completely disable all log messages
|
||||
// is logging disabled now?
|
||||
static bool IsEnabled() { return ms_doLog; }
|
||||
@ -579,3 +585,5 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode);
|
||||
#endif //debug/!debug
|
||||
|
||||
#endif // _WX_LOG_H_
|
||||
|
||||
// vi:sts=4:sw=4:et
|
||||
|
@ -65,7 +65,7 @@ void wxControlContainer::SetLastFocus(wxWindow *win)
|
||||
// like when detaching a menubar from a frame with a child which
|
||||
// has pushed itself as an event handler for the menubar. (wxGtk)
|
||||
|
||||
wxASSERT_MSG( winParent, _T("Setting last focus for a window that is not our child?") );
|
||||
wxASSERT_MSG( winParent, _T("Setting last-focus for a window that is not our child?") );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,10 @@
|
||||
#define LOG_BUFFER_SIZE (4096)
|
||||
|
||||
// static buffer for error messages
|
||||
static wxChar s_szBuf[LOG_BUFFER_SIZE];
|
||||
static wxChar s_szBufStatic[LOG_BUFFER_SIZE];
|
||||
|
||||
static wxChar *s_szBuf = s_szBufStatic;
|
||||
static size_t s_szBufSize = WXSIZEOF( s_szBufStatic );
|
||||
|
||||
#if wxUSE_THREADS
|
||||
|
||||
@ -117,7 +120,7 @@ void wxVLogGeneric(wxLogLevel level, const wxChar *szFormat, va_list argptr)
|
||||
if ( IsLoggingEnabled() ) {
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||
|
||||
wxLog::OnLog(level, s_szBuf, time(NULL));
|
||||
}
|
||||
@ -137,7 +140,7 @@ void wxLogGeneric(wxLogLevel level, const wxChar *szFormat, ...)
|
||||
if ( IsLoggingEnabled() ) { \
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf); \
|
||||
\
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr); \
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr); \
|
||||
\
|
||||
wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \
|
||||
} \
|
||||
@ -160,7 +163,7 @@ IMPLEMENT_LOG_FUNCTION(Status)
|
||||
// always terminate the program
|
||||
void wxVLogFatalError(const wxChar *szFormat, va_list argptr)
|
||||
{
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||
|
||||
#if wxUSE_GUI
|
||||
wxMessageBox(s_szBuf, _("Fatal Error"), wxID_OK | wxICON_STOP);
|
||||
@ -187,7 +190,7 @@ void wxVLogVerbose(const wxChar *szFormat, va_list argptr)
|
||||
if ( pLog != NULL && pLog->GetVerbose() ) {
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||
|
||||
wxLog::OnLog(wxLOG_Info, s_szBuf, time(NULL));
|
||||
}
|
||||
@ -210,7 +213,7 @@ void wxLogVerbose(const wxChar *szFormat, ...)
|
||||
if ( IsLoggingEnabled() ) { \
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf); \
|
||||
\
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr); \
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr); \
|
||||
\
|
||||
wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \
|
||||
} \
|
||||
@ -229,7 +232,7 @@ void wxLogVerbose(const wxChar *szFormat, ...)
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||
|
||||
wxChar *p = s_szBuf;
|
||||
size_t len = WXSIZEOF(s_szBuf);
|
||||
size_t len = s_szBufSize;
|
||||
wxStrncpy(s_szBuf, _T("("), len);
|
||||
len -= 1; // strlen("(")
|
||||
p += 1;
|
||||
@ -264,7 +267,7 @@ void wxLogVerbose(const wxChar *szFormat, ...)
|
||||
if ( IsLoggingEnabled() && ((wxLog::GetTraceMask() & mask) == mask) ) {
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||
|
||||
wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL));
|
||||
}
|
||||
@ -294,7 +297,7 @@ void wxLogSysErrorHelper(long lErrCode)
|
||||
wxChar szErrMsg[LOG_BUFFER_SIZE / 2];
|
||||
wxSnprintf(szErrMsg, WXSIZEOF(szErrMsg),
|
||||
_(" (error %ld: %s)"), lErrCode, wxSysErrorMsg(lErrCode));
|
||||
wxStrncat(s_szBuf, szErrMsg, WXSIZEOF(s_szBuf) - wxStrlen(s_szBuf));
|
||||
wxStrncat(s_szBuf, szErrMsg, s_szBufSize - wxStrlen(s_szBuf));
|
||||
|
||||
wxLog::OnLog(wxLOG_Error, s_szBuf, time(NULL));
|
||||
}
|
||||
@ -304,7 +307,7 @@ void WXDLLEXPORT wxVLogSysError(const wxChar *szFormat, va_list argptr)
|
||||
if ( IsLoggingEnabled() ) {
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||
|
||||
wxLogSysErrorHelper(wxSysErrorCode());
|
||||
}
|
||||
@ -323,7 +326,7 @@ void WXDLLEXPORT wxVLogSysError(long lErrCode, const wxChar *szFormat, va_list a
|
||||
if ( IsLoggingEnabled() ) {
|
||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||
|
||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
||||
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||
|
||||
wxLogSysErrorHelper(lErrCode);
|
||||
}
|
||||
@ -346,6 +349,24 @@ wxLog::wxLog()
|
||||
m_bHasMessages = FALSE;
|
||||
}
|
||||
|
||||
wxChar *wxLog::SetLogBuffer( wxChar *buf, size_t size = 0 )
|
||||
{
|
||||
wxChar *oldbuf = s_szBuf;
|
||||
|
||||
if( buf == 0 )
|
||||
{
|
||||
s_szBuf = s_szBufStatic;
|
||||
s_szBufSize = WXSIZEOF( s_szBufStatic );
|
||||
}
|
||||
else
|
||||
{
|
||||
s_szBuf = buf;
|
||||
s_szBufSize = size;
|
||||
}
|
||||
|
||||
return (oldbuf == s_szBufStatic ) ? 0 : oldbuf;
|
||||
}
|
||||
|
||||
wxLog *wxLog::GetActiveTarget()
|
||||
{
|
||||
if ( ms_bAutoCreate && ms_pLogger == NULL ) {
|
||||
@ -659,8 +680,7 @@ OSErr UserSetWatchPoint (Ptr address, long length, WatchPointIDT* watchPointID)
|
||||
OSErr ClearWatchPoint (WatchPointIDT watchPointID)
|
||||
{
|
||||
if (IsMetroNubInstalled() && IsCompatibleVersion(kMetroNubUserAPIVersion))
|
||||
return CallClearWatchPointProc(gMetroNubEntry->clearWatchPoint,
|
||||
watchPointID);
|
||||
return CallClearWatchPointProc(gMetroNubEntry->clearWatchPoint, watchPointID);
|
||||
else
|
||||
return errProcessIsNotClient;
|
||||
}
|
||||
@ -937,3 +957,5 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode)
|
||||
}
|
||||
|
||||
#endif //wxUSE_LOG
|
||||
|
||||
// vi:sts=4:sw=4:et
|
||||
|
Loading…
Reference in New Issue
Block a user