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.
138 lines
2.8 KiB
C
138 lines
2.8 KiB
C
|
12 years ago
|
/*
|
||
|
|
* 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 *fmt, ... );
|
||
|
|
|
||
|
|
#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
|
||
|
|
|
||
|
|
DWORD m_dwStartTime; // application start time
|
||
|
|
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;
|
||
|
|
int m_nLogByDay_StartTime;
|
||
|
|
|
||
|
|
long m_lLastLogByDateTime;
|
||
|
|
};
|
||
|
|
|
||
|
|
//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
|
||
|
|
|
||
|
|
|