feat: add logger with write to file

This commit is contained in:
semenov
2025-08-06 16:04:53 +03:00
parent 305fcb2fad
commit 34dddad3cd
20 changed files with 213 additions and 154 deletions

View File

@@ -17,13 +17,14 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
dataParser(nullptr),
processingSystem(nullptr),
updateController(nullptr),
logger(nullptr),
providerDBLMS(nullptr)
{
ui->setupUi(this);
mutex = new QMutex;
qRegisterMetaType<PacketType>("PacketType");
qRegisterMetaType<UserType>("UserType");
qRegisterMetaType<LogLevel>("LogLevel");
errorCode = 0;
ui->btnStopServer->setEnabled(false);
@@ -40,13 +41,9 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
providerDBLMS->ConnectionToDB();
providerDBLMS->deAuthorizationAll();
logger = new Logger();
chatSystem = new ChatSystem();
connect(providerDBLMS, &ProviderDBLMS::signal_BlockAutorization, this, &ServerLMSWidget::slot_BlockAutorization);
connect(logger,&Logger::sigSendTextToLogger,this,&ServerLMSWidget::slotAddToLog,Qt::AutoConnection);
logger->moveToThread(loggerThread);
assetsManager = new AssetsManager;
assetsManager->moveToThread(updateThread);
@@ -60,24 +57,25 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) :
dataParser = new DataParser(assetsManager,processingSystem);
commonClientHandler = new CommonClientHandler;
server = new MultiThreadServer(this,updateController,processingSystem,dataParser,logger,6000);
server = new MultiThreadServer(this,updateController,processingSystem,dataParser,6000);
loggerThread->start();
updateThread->start();
commonClientHandler->initialize(server->getClientsMap(),processingSystem,dataParser,logger);
processingSystem->initialize(server,dataParser,commonClientHandler,logger,updateController,chatSystem);
commonClientHandler->initialize(server->getClientsMap(),processingSystem,dataParser);
processingSystem->initialize(server,dataParser,commonClientHandler,updateController,chatSystem);
chatSystem->initialize(commonClientHandler,dataParser,server->getClientsMap());
logger->setTypeLog("widget");
connect(dataParser,&DataParser::sigLogMessage,logger,&Logger::addTextToLogger);
Logger::instance().moveToThread(loggerThread);
Logger::instance().setLoggingType(LoggingType::CONSOLE);
Logger::instance().setLogToFile(true);
connect(this,&ServerLMSWidget::sigUpdateController,updateController,&UpdateController::initialize,Qt::DirectConnection);
connect(this,&ServerLMSWidget::sigLog,logger,&Logger::addTextToLogger,Qt::AutoConnection);
connect(this,&ServerLMSWidget::sigCalculateFullHash,updateController,&UpdateController::calculateFullHash,Qt::AutoConnection);
connect(updateController,&UpdateController::sigErrorRequired,this,&ServerLMSWidget::setError);
connect(&Logger::instance(),&Logger::sigLogToWidget,this, &ServerLMSWidget::addToLog,Qt::QueuedConnection);
emit sigUpdateController(commonClientHandler,dataParser,assetsManager,logger);
emit sigUpdateController(commonClientHandler,dataParser,assetsManager);
on_btnStartServer_clicked();
first = true;
@@ -98,12 +96,6 @@ ServerLMSWidget::~ServerLMSWidget()
}
Logger *ServerLMSWidget::getLogger() const
{
return logger;
}
void ServerLMSWidget::slotUpdateListClients()
{
//Очищаем список
@@ -119,7 +111,12 @@ void ServerLMSWidget::slotUpdateListClients()
}
int countClients = (*server->getClientsMap()).count();
emit sigLog("SERVER: countClients = " + QString::number(countClients));
Logger::instance().log("SERVER: countClients = " + QString::number(countClients));
}
void ServerLMSWidget::addToLog(QString message)
{
ui->loggerTextField->appendPlainText(message);
}
void ServerLMSWidget::slot_BlockAutorization(bool block)
@@ -136,12 +133,6 @@ void ServerLMSWidget::slot_LanguageChanged(QString language)
qApp->installTranslator(&qtLanguageTranslator);
}
void ServerLMSWidget::slotAddToLog(QString msg)
{
ui->listWidgetLogger->addItem(msg);
ui->listWidgetLogger->scrollToBottom();
}
void ServerLMSWidget::on_btnStartServer_clicked()
{
if(server->startServer())
@@ -165,6 +156,11 @@ void ServerLMSWidget::on_btnStopServer_clicked()
}
}
QMutex *ServerLMSWidget::getMutex() const
{
return mutex;
}
void ServerLMSWidget::changeEvent(QEvent *event)
{
// В случае получения события изменения языка приложения