So, how to use them?
The first one enables you to add messages to a trace file which are gloablly triggered by the state of the variable "g_EnableDebugTraceFile". The second one will ignore the state and always write to the debug file. The files name must b provided though "g_DebugTraceFile", otherwise none of the both is written.
Its really for very low-level debugging only. I used it from time to time to trace freezes. But then, such debug statements across the code won't make it into SVN. So these macros are for a personal developer's convenience.
Use them as:
TRACE_TO_FILE(wxT("Entering Loop..."))
...or:
TRACE_TO_FILE(wxString::Format(wxT("Entering Loop %d..."), 5))
So, how do you put those macros? Did you put them in the function body of
void CCLogger::Log(const wxString& msg)
void CCLogger::DebugLog(const wxString& msg)
?
Also, about this variable: g_EnableDebugTraceFile, how do you set if or reset it? Do you want to log the message when the parsing is parsing a specific file? I see there is a similar code (maybe added by Loaden, the comment below was added by me in my local copy)
// in some cases, you are only interested in the log message of some specific file
// you can use this macro, it will set the global value g_EnableDebugTrace in the
// Tokenizer, so DebugLog message is only print when parsing this file.
#define TRACE2_SET_FLAG(traceFile) \
g_EnableDebugTrace = !g_DebugTraceFile.IsEmpty() && traceFile.EndsWith(g_DebugTraceFile)
With this feature, if the parsing parsing many source files, but you are only interest the log message for one file: e.g. aaa.cpp, you can set this variable when parsing aaa.cpp, and later reset the variable in parsing other files.