From 92c59963f82f81aa3202657e7fdbb2592924ede3 Mon Sep 17 00:00:00 2001 From: "cedeel@gmail.com" Date: Thu, 14 Jun 2012 13:06:06 +0000 Subject: Attempt to bring sanity to newlines across systems. git-svn-id: http://mc-server.googlecode.com/svn/trunk@606 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cLog.cpp | 318 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 159 insertions(+), 159 deletions(-) (limited to 'source/cLog.cpp') 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 -#include -#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 +#include +#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 ); +} + + + + -- cgit v1.2.3