1
0
Fork 0

Fixed Tools to work with new logging framework

This commit is contained in:
Tycho 2014-08-10 20:10:47 +01:00
parent bf0050e066
commit be780b380e
8 changed files with 18 additions and 216 deletions

View File

@ -39,14 +39,12 @@ set_exe_flags()
set(SHARED_SRC
../../src/StringCompression.cpp
../../src/StringUtils.cpp
../../src/Log.cpp
../../src/MCLogger.cpp
../../src/Listeners.cpp
../../src/LogDispacher.cpp
)
set(SHARED_HDR
../../src/ByteBuffer.h
../../src/StringUtils.h
../../src/Log.h
../../src/MCLogger.h
)
flatten_files(SHARED_SRC)
flatten_files(SHARED_HDR)

View File

@ -5,7 +5,8 @@
#include "Globals.h"
#include "MCADefrag.h"
#include "MCLogger.h"
#include "LogDispacher.h"
#include "Listeners.h"
#include "zlib/zlib.h"
@ -21,7 +22,13 @@ static const Byte g_Zeroes[4096] = {0};
int main(int argc, char ** argv)
{
new cMCLogger(Printf("Defrag_%08x.log", time(NULL)));
Logger::cLoggerListener * consoleLogListener = Logger::MakeConsoleListener();
Logger::cLoggerListener * fileLogListener = new Logger::cFileListener();
Logger::GetInstance().AttachListener(consoleLogListener);
Logger::GetInstance().AttachListener(fileLogListener);
Logger::InitiateMultithreading();
cMCADefrag Defrag;
if (!Defrag.Init(argc, argv))
{
@ -30,6 +37,11 @@ int main(int argc, char ** argv)
Defrag.Run();
Logger::GetInstance().DetachListener(consoleLogListener);
delete consoleLogListener;
Logger::GetInstance().DetachListener(fileLogListener);
delete fileLogListener;
return 0;
}

View File

@ -34,20 +34,18 @@ set_exe_flags()
set(SHARED_SRC
../../src/ByteBuffer.cpp
../../src/StringUtils.cpp
../../src/Log.cpp
../../src/MCLogger.cpp
../../src/PolarSSL++/AesCfb128Decryptor.cpp
../../src/PolarSSL++/AesCfb128Encryptor.cpp
../../src/PolarSSL++/CryptoKey.cpp
../../src/PolarSSL++/CtrDrbgContext.cpp
../../src/PolarSSL++/EntropyContext.cpp
../../src/PolarSSL++/RsaPrivateKey.cpp
../../src/Listeners.cpp
../../src/LogDispacher.cpp
)
set(SHARED_HDR
../../src/ByteBuffer.h
../../src/StringUtils.h
../../src/Log.h
../../src/MCLogger.h
../../src/PolarSSL++/AesCfb128Decryptor.h
../../src/PolarSSL++/AesCfb128Encryptor.h
../../src/PolarSSL++/CryptoKey.h

View File

@ -43,7 +43,6 @@ SET (SRCS
LineBlockTracer.cpp
LinearInterpolation.cpp
Listeners.cpp
Log.cpp
LogDispacher.cpp
Map.cpp
MapManager.cpp
@ -109,7 +108,6 @@ SET (HDRS
LineBlockTracer.h
LinearInterpolation.h
LinearUpscale.h
Log.h
LogDispacher.h
Map.h
MapManager.h

View File

@ -1,169 +0,0 @@
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
#include "Log.h"
#include <fstream>
#include <ctime>
#include "OSSupport/IsThread.h"
#if defined(ANDROID_NDK)
#include <android/log.h>
#include "ToJava.h"
#endif
cLog* cLog::s_Log = NULL;
cLog::cLog(const AString & a_FileName)
: m_File(NULL)
{
s_Log = this;
// create logs directory
cFile::CreateFolder(FILE_IO_PREFIX + AString("logs"));
OpenLog((FILE_IO_PREFIX + AString("logs/") + a_FileName).c_str());
}
cLog::~cLog()
{
CloseLog();
s_Log = NULL;
}
cLog * cLog::GetInstance()
{
if (s_Log != NULL)
{
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 _MSC_VER
fopen_s( &m_File, a_FileName, "a+");
#else
m_File = fopen(a_FileName, "a+");
#endif
}
void cLog::ClearLog()
{
#ifdef _MSC_VER
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 = NULL;
}
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 _MSC_VER
struct tm timeinforeal;
timeinfo = &timeinforeal;
localtime_s(timeinfo, &rawtime);
#else
timeinfo = localtime( &rawtime);
#endif
AString Line;
#ifdef _DEBUG
Printf(Line, "[%04lx|%02d:%02d:%02d] %s", cIsThread::GetCurrentID(), timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, Message.c_str());
#else
Printf(Line, "[%02d:%02d:%02d] %s", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec, Message.c_str());
#endif
if (m_File)
{
fprintf(m_File, "%s\n", Line.c_str());
fflush(m_File);
}
// Print to console:
#if defined(ANDROID_NDK)
// __android_log_vprint(ANDROID_LOG_ERROR, "MCServer", a_Format, argList);
__android_log_print(ANDROID_LOG_ERROR, "MCServer", "%s", Line.c_str());
// CallJavaFunction_Void_String(g_JavaThread, "AddToLog", Line);
#else
printf("%s", Line.c_str());
#endif
#if defined (_WIN32) && defined(_DEBUG)
// In a Windows Debug build, output the log to debug console as well:
OutputDebugStringA((Line + "\n").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);
}

View File

@ -1,30 +0,0 @@
#pragma once
class cLog
{
private:
FILE * m_File;
static cLog * s_Log;
public:
cLog(const AString & a_FileName);
~cLog();
void Log(const char * a_Format, va_list argList) FORMATSTRING(2, 0);
void Log(const char * a_Format, ...) FORMATSTRING(2, 3);
// tolua_begin
void SimpleLog(const char * a_String);
void OpenLog(const char * a_FileName);
void CloseLog();
void ClearLog();
static cLog* GetInstance();
};

View File

@ -1,7 +1,6 @@
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
#include "Log.h"
#include "OSSupport/IsThread.h"

View File

@ -2,10 +2,6 @@
#pragma once
class cLog;
namespace Logger
{