diff options
Diffstat (limited to 'source/cLog.cpp')
-rw-r--r-- | source/cLog.cpp | 318 |
1 files changed, 159 insertions, 159 deletions
diff --git a/source/cLog.cpp b/source/cLog.cpp index cf8448d8b..5e79b48bf 100644 --- a/source/cLog.cpp +++ b/source/cLog.cpp @@ -1,159 +1,159 @@ -
-#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
-
-#include "cLog.h"
-
-#include <fstream>
-#include <ctime>
-#include "cMakeDir.h"
-
-#include "cIsThread.h"
-
-
-
-
-
-cLog* cLog::s_Log = NULL;
-
-cLog::cLog(const AString & a_FileName )
- : m_File(NULL)
-{
- s_Log = this;
-
- // create logs directory
- cMakeDir::MakeDir("logs");
-
- OpenLog( (std::string("logs/") + a_FileName).c_str() );
-}
-
-
-
-
-
-cLog::~cLog()
-{
- CloseLog();
- s_Log = NULL;
-}
-
-
-
-
-
-cLog* cLog::GetInstance()
-{
- if(s_Log)
- return s_Log;
-
- new cLog("log.txt");
- return s_Log;
-}
-
-
-
-
-
-void cLog::CloseLog()
-{
- if( m_File )
- fclose (m_File);
- m_File = 0;
-}
-
-
-
-
-
-void cLog::OpenLog( const char* a_FileName )
-{
- if(m_File) fclose (m_File);
- #ifdef _WIN32
- fopen_s( &m_File, a_FileName, "a+" );
- #else
- m_File = fopen(a_FileName, "a+" );
- #endif
-}
-
-
-
-
-
-void cLog::ClearLog()
-{
- #ifdef _WIN32
- if( fopen_s( &m_File, "log.txt", "w" ) == 0)
- fclose (m_File);
- #else
- m_File = fopen("log.txt", "w" );
- if( m_File )
- fclose (m_File);
- #endif
- m_File = 0;
-}
-
-
-
-
-
-void cLog::Log(const char * a_Format, va_list argList)
-{
- AString Message;
- AppendVPrintf(Message, a_Format, argList);
-
- time_t rawtime;
- time ( &rawtime );
-
- struct tm* timeinfo;
-#ifdef _WIN32
- struct tm timeinforeal;
- timeinfo = &timeinforeal;
- localtime_s(timeinfo, &rawtime );
-#else
- timeinfo = localtime( &rawtime );
-#endif
-
- AString Line;
- #ifdef _DEBUG
- Printf(Line, "[%04x|%02d:%02d:%02d] %s\n", cIsThread::GetCurrentID(), timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, Message.c_str());
- #else
- Printf(Line, "[%02d:%02d:%02d] %s\n", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, Message.c_str());
- #endif
- if (m_File)
- {
- fputs(Line.c_str(), m_File);
- fflush(m_File);
- }
-
- // Print to console:
- printf("%s", Line.c_str());
-
- #if defined (_WIN32) && defined(_DEBUG)
- // In a Windows Debug build, output the log to debug console as well:
- OutputDebugString(Line.c_str());
- #endif // _WIN32
-}
-
-
-
-
-
-void cLog::Log(const char* a_Format, ...)
-{
- va_list argList;
- va_start(argList, a_Format);
- Log( a_Format, argList );
- va_end(argList);
-}
-
-
-
-
-
-void cLog::SimpleLog(const char* a_String)
-{
- Log("%s", a_String );
-}
-
-
-
-
+ +#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules + +#include "cLog.h" + +#include <fstream> +#include <ctime> +#include "cMakeDir.h" + +#include "cIsThread.h" + + + + + +cLog* cLog::s_Log = NULL; + +cLog::cLog(const AString & a_FileName ) + : m_File(NULL) +{ + s_Log = this; + + // create logs directory + cMakeDir::MakeDir("logs"); + + OpenLog( (std::string("logs/") + a_FileName).c_str() ); +} + + + + + +cLog::~cLog() +{ + CloseLog(); + s_Log = NULL; +} + + + + + +cLog* cLog::GetInstance() +{ + if(s_Log) + return s_Log; + + new cLog("log.txt"); + return s_Log; +} + + + + + +void cLog::CloseLog() +{ + if( m_File ) + fclose (m_File); + m_File = 0; +} + + + + + +void cLog::OpenLog( const char* a_FileName ) +{ + if(m_File) fclose (m_File); + #ifdef _WIN32 + fopen_s( &m_File, a_FileName, "a+" ); + #else + m_File = fopen(a_FileName, "a+" ); + #endif +} + + + + + +void cLog::ClearLog() +{ + #ifdef _WIN32 + if( fopen_s( &m_File, "log.txt", "w" ) == 0) + fclose (m_File); + #else + m_File = fopen("log.txt", "w" ); + if( m_File ) + fclose (m_File); + #endif + m_File = 0; +} + + + + + +void cLog::Log(const char * a_Format, va_list argList) +{ + AString Message; + AppendVPrintf(Message, a_Format, argList); + + time_t rawtime; + time ( &rawtime ); + + struct tm* timeinfo; +#ifdef _WIN32 + struct tm timeinforeal; + timeinfo = &timeinforeal; + localtime_s(timeinfo, &rawtime ); +#else + timeinfo = localtime( &rawtime ); +#endif + + AString Line; + #ifdef _DEBUG + Printf(Line, "[%04x|%02d:%02d:%02d] %s\n", cIsThread::GetCurrentID(), timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, Message.c_str()); + #else + Printf(Line, "[%02d:%02d:%02d] %s\n", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, Message.c_str()); + #endif + if (m_File) + { + fputs(Line.c_str(), m_File); + fflush(m_File); + } + + // Print to console: + printf("%s", Line.c_str()); + + #if defined (_WIN32) && defined(_DEBUG) + // In a Windows Debug build, output the log to debug console as well: + OutputDebugString(Line.c_str()); + #endif // _WIN32 +} + + + + + +void cLog::Log(const char* a_Format, ...) +{ + va_list argList; + va_start(argList, a_Format); + Log( a_Format, argList ); + va_end(argList); +} + + + + + +void cLog::SimpleLog(const char* a_String) +{ + Log("%s", a_String ); +} + + + + |