/
dieoska
/
ddnet
Обзор
Документация
Войти
/
dieoska
/
ddnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/engine/server/server_logger.cpp
47 строк
935 B
heinrich5991
Add separate log levels for each output
24 июл 2023, 23:43
24 июл 2023, 23:43
85566fb
Код
Авторство
О чём код?
#include "server_logger.h" #include "server.h" CServerLogger::CServerLogger(CServer *pServer) : m_pServer(pServer), m_MainThread(std::this_thread::get_id()) { dbg_assert(pServer != nullptr, "server pointer must not be null"); } void CServerLogger::Log(const CLogMessage *pMessage) { if(m_Filter.Filters(pMessage)) { return; } m_PendingLock.lock(); if(m_MainThread == std::this_thread::get_id()) { if(!m_vPending.empty()) { if(m_pServer) { for(const auto &Message : m_vPending) { m_pServer->SendLogLine(&Message); } } m_vPending.clear(); } m_PendingLock.unlock(); if(m_pServer) m_pServer->SendLogLine(pMessage); } else { m_vPending.push_back(*pMessage); m_PendingLock.unlock(); } } void CServerLogger::OnServerDeletion() { dbg_assert(m_MainThread == std::this_thread::get_id(), "CServerLogger::OnServerDeletion not called from the main thread"); m_pServer = nullptr; }