|
- #include "rack.hpp"
- #include "CLog.h"
-
- char Days[7][4]=
- {
- {"Sun"},
- {"Mon"},
- {"Tue"},
- {"Wed"},
- {"Thu"},
- {"Fri"},
- {"Sat"}
- };
-
- char Months[12][4]=
- {
- {"Jan"},
- {"Feb"},
- {"Mar"},
- {"Apr"},
- {"May"},
- {"Jun"},
- {"Jul"},
- {"Aug"},
- {"Sep"},
- {"Oct"},
- {"Nov"},
- {"Dec"}
- };
-
- //-----------------------------------------------------
- // Function:
- //
- //-----------------------------------------------------
- CLog::CLog()
- {
- m_LogLevel = 1;
- fp = NULL;
- m_LogCallbackFunc = NULL;
- }
-
- //-----------------------------------------------------
- // Function:
- //
- //-----------------------------------------------------
- CLog::~CLog()
- {
- Close();
- }
-
- //-----------------------------------------------------
- // Function:
- //
- //-----------------------------------------------------
- int CLog::Open( std::string strFileName )
- {
- // test if this file is valid
- if ( (fp = fopen( strFileName.c_str(), "w+" ) ) == NULL )
- return 0;
-
- // return success
- return 1;
- }
-
- //-----------------------------------------------------
- // Function:
- //
- //-----------------------------------------------------
- void CLog::Close(void)
- {
- // if file not open then bail
- if (fp)
- {
- // close the file handle
- fclose(fp);
- fp = NULL;
- }
- }
-
- //-----------------------------------------------------
- // Function: SetLogLvl
- //
- //-----------------------------------------------------
- void CLog::SetLogLvl( int level )
- {
- m_LogLevel = level;
- }
-
- //-----------------------------------------------------
- // Function: SetCallback
- //
- //-----------------------------------------------------
- void CLog::SetCallback ( LOGCALLBACK *func, void *pClass )
- {
- m_LogCallbackFunc = func;
- m_pCallbackClass = pClass;
- }
-
- void CLog::f( std::string string, ... )
- {
- // if file not open then bail
- if (!fp)
- return;
-
- //_Xtime_get_ticks(
-
- va_list arglist; // variable argument list
-
- // print out the string using the variable number of arguments on stack
- va_start( arglist, string );
- vsprintf( (char*)buffer.c_str(), string.c_str(), arglist );
- va_end( arglist );
-
- // write string to file
- fprintf( fp,(char*)buffer.c_str() );
-
- // write string to callback so user can display it somewhere
- if( m_LogCallbackFunc )
- m_LogCallbackFunc( m_pCallbackClass, (char*)buffer.c_str() );
-
- fflush(fp);
- }
-
- //-----------------------------------------------------
- // Function: no timestamp
- //
- //-----------------------------------------------------
- void CLog::fnr( std::string string, ...)
- {
-
- va_list arglist; // variable argument list
-
- // if file not open then bail
- if (!fp)
- return;
-
- // print out the string using the variable number of arguments on stack
- va_start( arglist,string );
- vsprintf( (char*)buffer.c_str(), string.c_str(),arglist );
- va_end( arglist );
-
- // write string to file
- fprintf( fp, (char*)buffer.c_str() );
-
- // write string to callback so user can display it somewhere
- if( m_LogCallbackFunc )
- m_LogCallbackFunc( m_pCallbackClass, (char*)buffer.c_str() );
-
- fflush(fp);
- }
-
- //-----------------------------------------------------
- // Function: mem - memory dump
- //
- //-----------------------------------------------------
- void CLog::mem( unsigned char *pBuff, unsigned int dwSize, unsigned int dwOff )
- {
- int i;
- unsigned int Offset=dwOff, index=0;
- unsigned char Val[16];
-
- // if file not open then bail
- if (!fp)
- return;
-
- do{
- f("0x%.4x: ", dwOff);
-
- Offset+=16;
- dwOff+=16;
-
- for(i=0; i<16; i++)
- {
- // extra space every four
- if(i%4 == 0)
- f(" ");
-
- if( index < dwSize )
- {
- Val[i]=pBuff[index];
- f("%.2x ", pBuff[index++]);
- }
- else
- {
- Val[i]=0;
- f("-- ", pBuff[index++]);
- }
- }
-
- // print characters
- for(i=0; i<16; i++)
- {
- if( isprint( Val[i] ) )
- f("%c", Val[i]);
- else
- f(".");
- }
-
- f("\n");
-
- }while(index < dwSize);
-
- f("\n\n");
- }
|