2021-10-18 12:40:44 +02:00
|
|
|
#include "Logger.h"
|
|
|
|
|
#include "FSRoot.h"
|
2021-10-20 09:48:13 +02:00
|
|
|
#include "lua.hpp"
|
|
|
|
|
#include "ClientLua.h"
|
2021-10-18 12:40:44 +02:00
|
|
|
|
2021-10-17 14:51:35 +02:00
|
|
|
#include <fstream>
|
|
|
|
|
#include <ctime>
|
|
|
|
|
#include <iomanip>
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
#include <filesystem>
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
Logger logger;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Logger::Logger()
|
|
|
|
|
{
|
|
|
|
|
#if LOG_LEVEL > 0
|
|
|
|
|
m_file.open("client.log",std::ios::out);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static bool isFirst = true;
|
|
|
|
|
Logger& log(const char* type, const char* file, size_t line)
|
|
|
|
|
{
|
|
|
|
|
#if LOG_LEVEL > 0
|
|
|
|
|
auto t = std::time(nullptr);
|
|
|
|
|
auto tm = *std::localtime(&t);
|
|
|
|
|
|
2021-10-18 12:39:15 +02:00
|
|
|
std::string filename = relProjectPath(file);
|
2021-10-17 14:51:35 +02:00
|
|
|
|
|
|
|
|
if (isFirst)
|
|
|
|
|
{
|
|
|
|
|
isFirst = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
logger << "\n";
|
|
|
|
|
}
|
2021-10-18 12:39:15 +02:00
|
|
|
logger
|
|
|
|
|
<< "["
|
|
|
|
|
<< type
|
|
|
|
|
<< "]["
|
|
|
|
|
<< std::put_time(&tm, "%H:%M:%S")
|
|
|
|
|
<< "]["
|
|
|
|
|
<< relProjectPath(file)
|
|
|
|
|
<< ":"
|
|
|
|
|
<< line
|
|
|
|
|
<< "] ";
|
2021-10-17 14:51:35 +02:00
|
|
|
#endif
|
|
|
|
|
return logger;
|
|
|
|
|
}
|
2021-10-20 09:48:13 +02:00
|
|
|
|
2021-11-26 15:10:53 +01:00
|
|
|
enum class LuaLoggingOpcode {
|
|
|
|
|
LUA_DEBUG = 0,
|
|
|
|
|
LUA_INFO = 1,
|
|
|
|
|
LUA_WARN = 2,
|
|
|
|
|
LUA_ERROR = 3,
|
|
|
|
|
};
|
2021-10-20 09:48:13 +02:00
|
|
|
|
2021-11-26 15:10:53 +01:00
|
|
|
LUA_FUNCTION(_LUA_LOG, (lua_State* L)) {
|
2021-10-20 09:48:13 +02:00
|
|
|
#ifdef LUA_LOGGING
|
2021-11-26 15:10:53 +01:00
|
|
|
switch (LuaLoggingOpcode(ClientLua::GetNumber(L, 1))) {
|
|
|
|
|
case LuaLoggingOpcode::LUA_DEBUG:
|
|
|
|
|
LOG_DEBUG << ClientLua::GetString(L, 2);
|
|
|
|
|
break;
|
|
|
|
|
case LuaLoggingOpcode::LUA_INFO:
|
|
|
|
|
LOG_INFO << ClientLua::GetString(L, 2);
|
|
|
|
|
break;
|
|
|
|
|
case LuaLoggingOpcode::LUA_WARN:
|
|
|
|
|
LOG_WARN << ClientLua::GetString(L, 2);
|
|
|
|
|
break;
|
|
|
|
|
case LuaLoggingOpcode::LUA_ERROR:
|
|
|
|
|
LOG_ERROR << ClientLua::GetString(L, 2);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
2021-10-20 09:48:13 +02:00
|
|
|
#endif
|
|
|
|
|
}
|