forked from metin2/server
Made a small-scale test with the spdlog library. Incidentally added fmt.
This commit is contained in:
@ -12,17 +12,15 @@ include_directories(src)
|
||||
add_executable(${PROJECT_NAME} ${sources})
|
||||
|
||||
# Find dependencies
|
||||
|
||||
#
|
||||
# vcpkg dependencies
|
||||
#
|
||||
|
||||
# Boost
|
||||
find_package(Boost COMPONENTS system REQUIRED)
|
||||
target_link_libraries (${PROJECT_NAME} PRIVATE Boost::boost Boost::system)
|
||||
|
||||
# Pthreads
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
|
||||
|
||||
# LibBSD
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE bsd)
|
||||
|
||||
# Libevent
|
||||
find_package(Libevent CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE libevent::core libevent::extra libevent::pthreads)
|
||||
@ -31,4 +29,24 @@ target_link_libraries(${PROJECT_NAME} PRIVATE libevent::core libevent::extra lib
|
||||
find_package(effolkronium_random CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE effolkronium_random)
|
||||
|
||||
# fmt
|
||||
find_package(fmt CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE fmt::fmt)
|
||||
|
||||
# spdlog
|
||||
find_package(spdlog CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE spdlog::spdlog)
|
||||
|
||||
#
|
||||
# System-provided dependencies
|
||||
#
|
||||
|
||||
# Pthreads
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
|
||||
|
||||
# LibBSD
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE bsd)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE libpoly libsql libthecore)
|
||||
|
@ -98,7 +98,7 @@ int CDBManager::Connect(int iSlot, const char * db_address, const int db_port, c
|
||||
if (iSlot < 0 || iSlot >= SQL_MAX_NUM)
|
||||
return false;
|
||||
|
||||
sys_log(0, "CREATING DIRECT_SQL");
|
||||
SPDLOG_INFO("CREATING DIRECT_SQL");
|
||||
m_directSQL[iSlot] = new CAsyncSQL2;
|
||||
if (!m_directSQL[iSlot]->Setup(db_address, user, pwd, db_name, g_stLocale.c_str(), true, db_port))
|
||||
{
|
||||
@ -107,7 +107,7 @@ int CDBManager::Connect(int iSlot, const char * db_address, const int db_port, c
|
||||
}
|
||||
|
||||
|
||||
sys_log(0, "CREATING MAIN_SQL");
|
||||
SPDLOG_INFO("CREATING MAIN_SQL");
|
||||
m_mainSQL[iSlot] = new CAsyncSQL2;
|
||||
if (!m_mainSQL[iSlot]->Setup(db_address, user, pwd, db_name, g_stLocale.c_str(), false, db_port))
|
||||
{
|
||||
@ -115,7 +115,7 @@ int CDBManager::Connect(int iSlot, const char * db_address, const int db_port, c
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, "CREATING ASYNC_SQL");
|
||||
SPDLOG_INFO("CREATING ASYNC_SQL");
|
||||
m_asyncSQL[iSlot] = new CAsyncSQL2;
|
||||
if (!m_asyncSQL[iSlot]->Setup(db_address, user, pwd, db_name, g_stLocale.c_str(), false, db_port))
|
||||
{
|
||||
@ -166,14 +166,14 @@ unsigned int CDBManager::EscapeString(void *to, const void *from, unsigned int l
|
||||
void CDBManager::SetLocale(const char * szLocale)
|
||||
{
|
||||
const std::string stLocale(szLocale);
|
||||
sys_log(0, "SetLocale start" );
|
||||
SPDLOG_DEBUG("SetLocale start");
|
||||
for (int n = 0; n < SQL_MAX_NUM; ++n)
|
||||
{
|
||||
m_mainSQL[n]->SetLocale(stLocale);
|
||||
m_directSQL[n]->SetLocale(stLocale);
|
||||
m_asyncSQL[n]->SetLocale(stLocale);
|
||||
}
|
||||
sys_log(0, "End setlocale %s", szLocale);
|
||||
SPDLOG_DEBUG("End setlocale {}", szLocale);
|
||||
}
|
||||
|
||||
void CDBManager::QueryLocaleSet()
|
||||
|
@ -62,7 +62,7 @@ void emergency_sig(int sig)
|
||||
|
||||
int main()
|
||||
{
|
||||
WriteVersion(std::cout);
|
||||
WriteVersion();
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
_malloc_options = "A";
|
||||
@ -133,26 +133,26 @@ int Start()
|
||||
{
|
||||
if (!CConfig::instance().LoadFile("conf.txt"))
|
||||
{
|
||||
fprintf(stderr, "Loading conf.txt failed.\n");
|
||||
SPDLOG_ERROR("Loading conf.txt failed.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!CConfig::instance().GetValue("TEST_SERVER", &g_test_server))
|
||||
{
|
||||
fprintf(stderr, "Real Server\n");
|
||||
SPDLOG_INFO("Real Server");
|
||||
}
|
||||
else
|
||||
fprintf(stderr, "Test Server\n");
|
||||
SPDLOG_INFO("Test Server");
|
||||
|
||||
if (!CConfig::instance().GetValue("LOG", &g_log))
|
||||
{
|
||||
fprintf(stderr, "Log Off");
|
||||
SPDLOG_INFO("Log Off");
|
||||
g_log= 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_log = 1;
|
||||
fprintf(stderr, "Log On");
|
||||
SPDLOG_INFO("Log On");
|
||||
}
|
||||
|
||||
|
||||
@ -161,7 +161,7 @@ int Start()
|
||||
int heart_beat = 50;
|
||||
if (!CConfig::instance().GetValue("CLIENT_HEART_FPS", &heart_beat))
|
||||
{
|
||||
fprintf(stderr, "Cannot find CLIENT_HEART_FPS configuration.\n");
|
||||
SPDLOG_ERROR("Cannot find CLIENT_HEART_FPS configuration.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ int Start()
|
||||
{
|
||||
tmpValue = std::clamp(tmpValue, 3, 30);
|
||||
log_set_expiration_days(tmpValue);
|
||||
fprintf(stderr, "Setting log keeping days to %d\n", tmpValue);
|
||||
SPDLOG_INFO("Setting log keeping days to {}", tmpValue);
|
||||
}
|
||||
|
||||
thecore_init(heart_beat, emptybeat);
|
||||
@ -182,12 +182,12 @@ int Start()
|
||||
if (CConfig::instance().GetValue("LOCALE", szBuf, 256))
|
||||
{
|
||||
g_stLocale = szBuf;
|
||||
sys_log(0, "LOCALE set to %s", g_stLocale.c_str());
|
||||
SPDLOG_INFO("LOCALE set to {}", g_stLocale.c_str());
|
||||
|
||||
// CHINA_DISABLE_HOTBACKUP
|
||||
if ("gb2312" == g_stLocale)
|
||||
{
|
||||
sys_log(0, "CIBN_LOCALE: DISABLE_HOTBACKUP");
|
||||
SPDLOG_INFO("CIBN_LOCALE: DISABLE_HOTBACKUP");
|
||||
g_bHotBackup = false;
|
||||
}
|
||||
// END_OF_CHINA_DISABLE_HOTBACKUP
|
||||
@ -197,8 +197,8 @@ int Start()
|
||||
if (CConfig::instance().GetValue("DISABLE_HOTBACKUP", &iDisableHotBackup))
|
||||
{
|
||||
if (iDisableHotBackup)
|
||||
{
|
||||
sys_log(0, "CONFIG: DISABLE_HOTBACKUP");
|
||||
{
|
||||
SPDLOG_INFO("CONFIG: DISABLE_HOTBACKUP");
|
||||
g_bHotBackup = false;
|
||||
}
|
||||
}
|
||||
@ -206,7 +206,7 @@ int Start()
|
||||
|
||||
if (!CConfig::instance().GetValue("TABLE_POSTFIX", szBuf, 256))
|
||||
{
|
||||
sys_err("TABLE_POSTFIX not configured use default");
|
||||
SPDLOG_WARN("TABLE_POSTFIX not configured use default");
|
||||
szBuf[0] = '\0';
|
||||
}
|
||||
|
||||
@ -215,20 +215,20 @@ int Start()
|
||||
if (CConfig::instance().GetValue("PLAYER_CACHE_FLUSH_SECONDS", szBuf, 256))
|
||||
{
|
||||
str_to_number(g_iPlayerCacheFlushSeconds, szBuf);
|
||||
sys_log(0, "PLAYER_CACHE_FLUSH_SECONDS: %d", g_iPlayerCacheFlushSeconds);
|
||||
SPDLOG_INFO("PLAYER_CACHE_FLUSH_SECONDS: {}", g_iPlayerCacheFlushSeconds);
|
||||
}
|
||||
|
||||
if (CConfig::instance().GetValue("ITEM_CACHE_FLUSH_SECONDS", szBuf, 256))
|
||||
{
|
||||
str_to_number(g_iItemCacheFlushSeconds, szBuf);
|
||||
sys_log(0, "ITEM_CACHE_FLUSH_SECONDS: %d", g_iItemCacheFlushSeconds);
|
||||
SPDLOG_INFO("ITEM_CACHE_FLUSH_SECONDS: {}", g_iItemCacheFlushSeconds);
|
||||
}
|
||||
|
||||
// MYSHOP_PRICE_LIST
|
||||
if (CConfig::instance().GetValue("ITEM_PRICELIST_CACHE_FLUSH_SECONDS", szBuf, 256))
|
||||
{
|
||||
str_to_number(g_iItemPriceListTableCacheFlushSeconds, szBuf);
|
||||
sys_log(0, "ITEM_PRICELIST_CACHE_FLUSH_SECONDS: %d", g_iItemPriceListTableCacheFlushSeconds);
|
||||
SPDLOG_INFO("ITEM_PRICELIST_CACHE_FLUSH_SECONDS: {}", g_iItemPriceListTableCacheFlushSeconds);
|
||||
}
|
||||
// END_OF_MYSHOP_PRICE_LIST
|
||||
//
|
||||
@ -241,7 +241,7 @@ int Start()
|
||||
int iIDStart;
|
||||
if (!CConfig::instance().GetValue("PLAYER_ID_START", &iIDStart))
|
||||
{
|
||||
sys_err("PLAYER_ID_START not configured");
|
||||
SPDLOG_ERROR("PLAYER_ID_START not configured");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ int Start()
|
||||
|
||||
if (CConfig::instance().GetValue("NAME_COLUMN", szBuf, 256))
|
||||
{
|
||||
fprintf(stderr, "%s %s", g_stLocaleNameColumn.c_str(), szBuf);
|
||||
SPDLOG_INFO("{} {}", g_stLocaleNameColumn, szBuf);
|
||||
g_stLocaleNameColumn = szBuf;
|
||||
}
|
||||
|
||||
@ -260,7 +260,7 @@ int Start()
|
||||
if (CConfig::instance().GetValue("SQL_PLAYER", line, 256))
|
||||
{
|
||||
sscanf(line, " %s %s %s %s %d ", szAddr, szDB, szUser, szPassword, &iPort);
|
||||
sys_log(0, "connecting to MySQL server (player)");
|
||||
SPDLOG_DEBUG("Connecting to MySQL server (player)");
|
||||
|
||||
int iRetry = 5;
|
||||
|
||||
@ -268,20 +268,18 @@ int Start()
|
||||
{
|
||||
if (CDBManager::instance().Connect(SQL_PLAYER, szAddr, iPort, szDB, szUser, szPassword))
|
||||
{
|
||||
sys_log(0, " OK");
|
||||
SPDLOG_INFO("Connected to MySQL server (player)");
|
||||
break;
|
||||
}
|
||||
|
||||
sys_log(0, " failed, retrying in 5 seconds");
|
||||
fprintf(stderr, " failed, retrying in 5 seconds");
|
||||
SPDLOG_ERROR("Connection to MySQL server (player) failed, retrying in 5 seconds");
|
||||
sleep(5);
|
||||
} while (iRetry--);
|
||||
fprintf(stderr, "Success PLAYER\n");
|
||||
SetPlayerDBName(szDB);
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("SQL_PLAYER not configured");
|
||||
SPDLOG_ERROR("SQL_PLAYER not configured");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -368,19 +366,17 @@ int Start()
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, "ClientManager initialization.. ");
|
||||
|
||||
if (!CClientManager::instance().Initialize())
|
||||
{
|
||||
sys_log(0, " failed");
|
||||
SPDLOG_ERROR("ClientManager initialization failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, " OK");
|
||||
SPDLOG_INFO("ClientManager initialization OK");
|
||||
|
||||
if (!PlayerHB::instance().Initialize())
|
||||
if (!PlayerHB::instance().Initialize())
|
||||
{
|
||||
sys_err("cannot initialize player hotbackup");
|
||||
SPDLOG_ERROR("cannot initialize player hotbackup");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,8 @@
|
||||
#include <common/stl.h>
|
||||
#include <common/service.h>
|
||||
|
||||
#include <spdlog/spdlog.h>
|
||||
|
||||
#include <memory>
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
|
@ -1,15 +1,8 @@
|
||||
#include <fmt/core.h>
|
||||
#include <version.h>
|
||||
|
||||
void WriteVersion(std::ostream& out) {
|
||||
out << "Metin2 DB Cache version " << __COMMIT_TAG__ << " "
|
||||
<< "(rev. " << __REVISION__ << ", date: " << __COMMIT_DATE__ << ")"
|
||||
<< std::endl;
|
||||
|
||||
out << "OS: " << __OS_NAME__ << ", "
|
||||
<< "target arch: " << __CPU_TARGET__ << ", "
|
||||
<< "compiler: " << __COMPILER__
|
||||
<< std::endl;
|
||||
|
||||
out << std::endl;
|
||||
void WriteVersion() {
|
||||
fmt::println("Metin2 DB Cache version {} (rev. {}, date: {})", __COMMIT_TAG__, __REVISION__, __COMMIT_DATE__);
|
||||
fmt::println("OS: {}, target arch: {}, compiler: {}", __OS_NAME__, __CPU_TARGET__, __COMPILER__);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user