You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
3.0 KiB
C++
142 lines
3.0 KiB
C++
/*
|
|
* Copyright (c) 1998-2000 by KVA Software
|
|
* All rights reserved.
|
|
*
|
|
* File: dbg.h
|
|
* Contents: CDebugPrintf class definition
|
|
* Author: Vladimir Kirienko
|
|
*
|
|
* http://www.uran.net/kva
|
|
* kirienko@geocities.com
|
|
*/
|
|
#ifndef ______DBG_H______
|
|
#define ______DBG_H______
|
|
|
|
// #define USE_STL
|
|
#undef USE_STL
|
|
|
|
// #define USE_MFC
|
|
#undef USE_MFC
|
|
|
|
#undef USE_DEBUG_PRINTF
|
|
|
|
#if defined(_DEBUG) || defined(DEBUG_PRINTF)
|
|
#define USE_DEBUG_PRINTF
|
|
#endif
|
|
|
|
#include "Utility.h"
|
|
|
|
#ifdef USE_DEBUG_PRINTF
|
|
|
|
#ifdef USE_STL
|
|
#include <string>
|
|
using namespace std;
|
|
#endif
|
|
|
|
/*
|
|
* Macro definitions
|
|
*
|
|
*/
|
|
#define IFDEBUG(doit) doit
|
|
|
|
#define PRINTF debug.printf
|
|
#define SHOW_CONSOLE debug.ShowConsole();
|
|
#define HIDE_CONSOLE debug.HideConsole();
|
|
#define SHOW_LASTERROR debug.ShowLastError();
|
|
#define CLOSE_LOG debug.CloseLog();
|
|
|
|
/*-----------------------------------------------------------------------
|
|
* Class : CDebugPrintf
|
|
* Prototype : class CDebugPrintf
|
|
* Description :
|
|
* Parent class :
|
|
* History :
|
|
*/
|
|
class CDebugPrintf
|
|
{
|
|
public:
|
|
bool LogStarted();
|
|
void StopLog();
|
|
void StartLog(char *cFilename = NULL);
|
|
CDebugPrintf(int nDebugType = 0);
|
|
virtual ~CDebugPrintf();
|
|
|
|
void printf(const char *str);
|
|
|
|
#ifdef USE_STL
|
|
void printf(string& str)
|
|
{
|
|
printf(str.c_str());
|
|
}
|
|
|
|
void printf(string* str)
|
|
{
|
|
printf(str->c_str());
|
|
}
|
|
|
|
#endif
|
|
|
|
#ifdef USE_MFC
|
|
void printf(CString& str)
|
|
{
|
|
printf(str.GetBuffer(1024));
|
|
}
|
|
|
|
void printf(CString* str)
|
|
{
|
|
printf(str->GetBuffer(1024));
|
|
}
|
|
|
|
#endif
|
|
|
|
void CloseLog();
|
|
|
|
void ShowConsole();
|
|
void HideConsole();
|
|
void ShowLastError();
|
|
|
|
private:
|
|
HANDLE m_hFile; // log-file handle
|
|
HANDLE m_hDebugMutex; // allow to check that log-file is open by other process
|
|
CRITICAL_SECTION m_hLock; // lock for thread-safe access
|
|
|
|
bool m_bUseConsole; // use or not log-console with log-file
|
|
int m_nDebugType; // to indicate debug type. 0 for debug log (TRACE), 1 for debug timing
|
|
char m_cFileName[256];
|
|
char m_cMutexName[256];
|
|
|
|
CHighResPerformanceCounter m_HighResCounter;
|
|
long m_nDebugLogCounter;
|
|
long m_nNoOfDebugLogSetting;
|
|
long m_nDebugLogFileSizSetting;
|
|
|
|
long m_nNoOfEventLogSetting;
|
|
long m_nEventLogFileSizSetting;
|
|
|
|
// Gary 1.16.04, allow to log by day
|
|
bool m_bLogByDay;
|
|
CString m_csLogByDayPath;
|
|
long m_lLastLogByDateTime;
|
|
CIniFile m_eventLogIni;
|
|
};
|
|
|
|
// extern CDebugPrintf debug;
|
|
// extern CDebugPrintf debugTiming;
|
|
|
|
#else
|
|
|
|
#define IFDEBUG(doit)
|
|
|
|
#define SLASH /
|
|
#define COMMENT ; SLASH /
|
|
|
|
#define PRINTF COMMENT
|
|
#define SHOW_CONSOLE COMMENT
|
|
#define HIDE_CONSOLE COMMENT
|
|
#define SHOW_LASTERROR COMMENT
|
|
#define CLOSE_LOG COMMENT
|
|
|
|
#endif
|
|
|
|
#endif
|