diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-04-02 21:00:27 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-04-07 16:32:07 +0800 |
| commit | c356b3f6dec8a9175c0cc388ed5fd44e7fd17824 (patch) | |
| tree | 0f2c98ffd24784125f6206149e0cfcc068d52450 /src | |
| parent | 85295cb74abc0cfff1259d426ae05a213b4ac184 (diff) | |
refactor: loggings
Diffstat (limited to 'src')
| -rw-r--r-- | src/chatServer.cpp | 1 | ||||
| -rw-r--r-- | src/commandHandler.cpp | 3 | ||||
| -rw-r--r-- | src/commands.cpp | 4 | ||||
| -rw-r--r-- | src/renderManager.cpp | 20 | ||||
| -rw-r--r-- | src/renderManager.hpp | 2 | ||||
| -rw-r--r-- | src/session.cpp | 13 | ||||
| -rw-r--r-- | src/sessionManager.cpp | 1 |
7 files changed, 32 insertions, 12 deletions
diff --git a/src/chatServer.cpp b/src/chatServer.cpp index 7b64e79..7c92721 100644 --- a/src/chatServer.cpp +++ b/src/chatServer.cpp @@ -36,6 +36,7 @@ void CChatServer::cleanup() { void CChatServer::initManagers() { log(LOG, "ChatServer: initializing managers"); + log(LOG, "Creating RenderManager"); g_pRenderManager = std::make_unique<CRenderManager>(); log(LOG, "Creating InputManager"); diff --git a/src/commandHandler.cpp b/src/commandHandler.cpp index 712bbe2..6340625 100644 --- a/src/commandHandler.cpp +++ b/src/commandHandler.cpp @@ -27,6 +27,8 @@ bool CCommandHandler::registerCommand(const SCommand &command) { return false; m_vCommands.push_back(command); + + log(TRACE, "CommandHandler: registered command: {}", command.name); return true; } @@ -48,6 +50,7 @@ CCommandHandler::SResult CCommandHandler::exeCommand(const SCommand &command, co return {.result = "", .good = false}; } + log(TRACE, "CommandHandler: executing command: {}", command.name); return command.exe(parsed); } diff --git a/src/commands.cpp b/src/commands.cpp index 4e67962..431af48 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -21,7 +21,7 @@ void registerCommands() { g_pCommandHandler->registerCommand(CCommandHandler::makeCommand<SKickArgs>({.name = "kick", .parser = [](const std::string &args) -> std::pair<SKickArgs, bool> { size_t pos = args.find(' '); std::string target = args; - std::string reason = "No reason specified"; + std::string reason = "Kicked: No reason specified"; if (pos != std::string::npos) { target = args.substr(0, pos); @@ -55,7 +55,7 @@ void registerCommands() { g_pCommandHandler->registerCommand(CCommandHandler::makeCommand<SMuteArgs>({.name = "mute", .parser = [](const std::string &args) -> std::pair<SMuteArgs, bool> { size_t pos = args.find(' '); std::string target = args; - std::string reason = "No reason specified"; + std::string reason = "Muted: No reason specified"; if (pos != std::string::npos) { target = args.substr(0, pos); diff --git a/src/renderManager.cpp b/src/renderManager.cpp index d3720c7..c103285 100644 --- a/src/renderManager.cpp +++ b/src/renderManager.cpp @@ -2,10 +2,22 @@ #include "log.hpp" CRenderManager::CRenderManager() - : screen(ftxui::ScreenInteractive::Fullscreen()) { - log(SYS, "RenderManager: initialized"); + : screen(ftxui::ScreenInteractive::TerminalOutput()) { + if (std::atexit([]() { g_pRenderManager->exitLoop(); })) + log(ERR, "Failed to register SessionManager atexit handler, will fallback to quick_exit after hang"); + log(LOG, "RenderManager: initialized"); }; +CRenderManager::~CRenderManager() { + exitLoop(); + log(SYS, "RenderManager: bye"); +} + +void CRenderManager::exitLoop() { + screen.ExitLoopClosure()(); + screen.Exit(); +} + void CRenderManager::enterLoop() { screen.Loop(renderer); } @@ -13,7 +25,3 @@ void CRenderManager::enterLoop() { void CRenderManager::setRenderer(ftxui::Component component) { renderer = std::move(component); } - -CRenderManager::~CRenderManager() { - screen.Exit(); -} diff --git a/src/renderManager.hpp b/src/renderManager.hpp index 4407f66..7a14cc0 100644 --- a/src/renderManager.hpp +++ b/src/renderManager.hpp @@ -13,6 +13,8 @@ class CRenderManager { void setRenderer(ftxui::Component component); private: + void exitLoop(); + ftxui::ScreenInteractive screen; ftxui::Component renderer; diff --git a/src/session.cpp b/src/session.cpp index 46a3927..f61c34e 100644 --- a/src/session.cpp +++ b/src/session.cpp @@ -38,11 +38,11 @@ CSession::~CSession() { #ifdef DEBUG void CSession::onConnect() { - log(LOG, "Client connected"); + log(TRACE, "Client {}@{} connected", m_name, m_ip); } void CSession::onDisconnect() { - log(LOG, "Client disconnected"); + log(TRACE, "Client {}@{} disconnected", m_name, m_ip); } #endif @@ -62,7 +62,7 @@ void CSession::onErrno(eEventType eventType) { #ifdef DEBUG void CSession::onRecv(const SRecvData &data) { - log(LOG, "Received: {}", data.data); + log(TRACE, "Received: {}", data.data); } void CSession::onSend(const std::string &msg) { @@ -77,6 +77,11 @@ void CSession::recvLoop() { break; recvData->sanitize(); + if (recvData->isEmpty()) { + log(TRACE, "Empty message from {}", m_name); + continue; + } + const auto isCommand = g_pCommandHandler->isCommand(recvData->data); if (m_isAdmin && isCommand) g_pCommandHandler->handleCommand(recvData->data, m_ip); @@ -184,7 +189,7 @@ bool CSession::registerSession() { this->m_name = recvData->data; - log(LOG, "Client registered as: {}", m_name); + log(LOG, "Client {} registered as: {}", m_ip, m_name); setDeaf(false); return true; diff --git a/src/sessionManager.cpp b/src/sessionManager.cpp index d1cf953..d880640 100644 --- a/src/sessionManager.cpp +++ b/src/sessionManager.cpp @@ -25,6 +25,7 @@ CSessionManager::~CSessionManager() { thread.detach(); session.reset(); } + log(SYS, "SessionManager: bye"); } |
