📄 cmdebug.cpp
字号:
#include <MatrixCore/System/CMDebug.h>
#include <TChar.h>
#include <stdio.h>
using namespace MatrixCore::System;
///////////////////////////////////////////////////////////////////////////////
// 积己磊.家戈磊.
///////////////////////////////////////////////////////////////////////////////
CMDebug::CMDebug()
: tracer1( 0 ),tracer2( 0 ),tracer3( 0 )
{
bInitFlag = false;
}
CMDebug::CMDebug( DEBUGTYPE type, LPCTSTR fileName )
: tracer1( 0 ),tracer2( 0 ),tracer3( 0 )
{
bInitFlag = false;
initialize( type, fileName );
}
CMDebug::~CMDebug()
{
close();
}
///////////////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////////////
//void CMDebug::initialize()
//{
// initialize(CMDebug::DEBUGTYPE_FILE,"err/NetErr");
//}
bool CMDebug::initialize( DEBUGTYPE type, LPCTSTR fileName )
{
// 茄啊瘤 究父 荤侩窍磊. 茄锅父 檬扁拳 等促.
if(bInitFlag == false)
bInitFlag = true;
else
return false;
switch( type )
{
case DEBUGTYPE_CONSOLE: tracer1 = ( CMTracer* )new CMTracerConsole(); tracer1->open( fileName ); break;
case DEBUGTYPE_FILE: tracer2 = ( CMTracer* )new CMTracerFile(); tracer2->open( fileName ); break;
case DEBUGTYPE_TRACE: tracer3 = ( CMTracer* )new CMTracerTrace(); tracer3->open( fileName ); break;
case DEBUGTYPE_CONSOLE_FILE:
tracer1 = ( CMTracer* )new CMTracerConsole();
tracer1->open( fileName );
tracer2 = ( CMTracer* )new CMTracerFile();
tracer2->open( fileName );
break;
case DEBUGTYPE_CONSOLE_TRACE:
tracer1 = ( CMTracer* )new CMTracerConsole();
tracer1->open( fileName );
tracer3 = ( CMTracer* )new CMTracerTrace();
tracer3->open( fileName );
break;
case DEBUGTYPE_FILE_TRACE:
tracer2 = ( CMTracer* )new CMTracerFile();
tracer2->open( fileName );
tracer3 = ( CMTracer* )new CMTracerTrace();
tracer3->open( fileName );
break;
case DEBUGTYPE_ALL:
tracer1 = ( CMTracer* )new CMTracerConsole();
tracer1->open( fileName );
tracer2 = ( CMTracer* )new CMTracerFile();
tracer2->open( fileName );
tracer3 = ( CMTracer* )new CMTracerTrace();
tracer3->open( fileName );
break;
default :
return false;
}
return true;
}
void CMDebug::close()
{
if( tracer1 != 0 )
{
tracer1->close();
delete tracer1;
tracer1 = 0;
}
if( tracer2 != 0 )
{
tracer2->close();
delete tracer2;
tracer2 = 0;
}
if( tracer3 != 0 )
{
tracer3->close();
delete tracer3;
tracer3 = 0;
}
}
void CMDebug::output( LPCTSTR format, ... )
{
TCHAR buffer[2048];
va_list args;
va_start( args, format );
_vstprintf( buffer, format, args );
va_end( args );
if( tracer1 != 0 )
{
tracer1->output( buffer );
}
if( tracer2 != 0 )
{
tracer2->output( buffer );
}
if( tracer3 != 0 )
{
tracer3->output( buffer );
}
}
CMDebug& CMDebug::operator << ( bool arg )
{
output( _T( "%d" ), arg );
return *this;
}
CMDebug& CMDebug::operator << ( int arg )
{
output( _T( "%d" ), arg );
return *this;
}
CMDebug& CMDebug::operator << ( long arg )
{
output( _T( "%d" ), arg );
return *this;
}
CMDebug& CMDebug::operator << ( DWORD arg )
{
output( _T( "%d" ), arg );
return *this;
}
CMDebug& CMDebug::operator << ( __int64 arg )
{
output( _T( "%d" ), arg );
return *this;
}
CMDebug& CMDebug::operator << ( LPTSTR arg )
{
output( arg );
return *this;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -