feat: merge the UserOperationLog and SystemOperationLog in LogManager.

This commit is contained in:
sunwen
2024-07-29 17:46:31 +08:00
parent 9c96fbbba6
commit 2c4783674e
27 changed files with 150 additions and 104 deletions

View File

@@ -3,7 +3,7 @@
#include <QHBoxLayout>
#include <QAbstractListModel>
#include <QScrollBar>
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "log/LogFileTableModel.h"
#include <QHeaderView>
#include <QLabel>
@@ -98,10 +98,9 @@ UserOperationLogForm::~UserOperationLogForm() {
}
void UserOperationLogForm::loadUserOperationLog() {
QString filePath = UserOperationLog::Default()->currentLogFile();
void UserOperationLogForm::loadUserOperationLog()
{
QString filePath = LogManager::getInstance()->getCurrentUserOperationLogFile();
mDateButton->setText(fileNameToDate(filePath));
loadUserOperationLog(filePath, fileNameToDate(filePath));
mSelectedDateStr = fileNameToDate(filePath);

View File

@@ -24,7 +24,7 @@
#include "dialogs/MultyMessageDialog.h"
#include "UsctStateManager.h"
#include "utilities/ScanProcessSequence.h"
#include "log/SystemOperationLog.h"
#include "log/LogManager.h"
#define TRIGGER_EVENT EventCenter::Default()->triggerEvent
@@ -468,6 +468,7 @@ void DeviceManager::stopFullScan()
if(!result.mIsSucessful)
{
THROW_ERROR(result.mData);
prepareFinishScan(false, "");
return;
}
@@ -646,6 +647,7 @@ QString DeviceManager::getSoftwareVersion()
void DeviceManager::processReceiveDMSInfoResult(int aServerID, int aActionID, const QString& aContents)
{
qDebug()<<"processReceiveDMSInfoResult " <<aServerID << aActionID << aContents;
LOG_SYS_OPERATION(QString("DMS -> GUI : %1-%2, Message:%3").arg(aServerID).arg(aActionID).arg(aContents));
switch(aServerID)
{
case USRV_SCAN :
@@ -772,7 +774,6 @@ void DeviceManager::processAlarm(const QString& aAlarm)
int alarmCode = jsonObj["code"].toInt();
QString alarm = tr("Error: ") + QString::number(alarmCode);
qDebug()<<"processAlarm : "<<alarmCode;
LOG_SYS_OPERATION("Dms alarm reported. code: " + alarm)
if(alarmCode >= 400 && alarmCode < 500)
{
if(mIsScanning)
@@ -807,7 +808,7 @@ void DeviceManager::processGetSoftwareVersion(const QString& aSoftwareVersion)
void DeviceManager::scanTimeout()
{
prepareFinishScan(false, "Dms connection timeout!");
prepareFinishScan(false, tr("DMS connection error"));
}
DeviceStatus DeviceManager::getDeviceStatus()
@@ -860,7 +861,6 @@ bool DeviceManager::startFullScan(const QString& aPatientInfo)
return false;
}
mCurrentScanMeasurementID = jsonObj["measurement id"].toString();
//LOG_SYS_OPERATION("Start full scan succeed.")
return true;
}
@@ -1341,7 +1341,6 @@ bool DeviceManager::startAutoLocate()
emit startAutoLocateResult(true);
mEffectivePositionCount = 0;
mGetAutoLocatePositionTimer = startTimer(1000);
//LOG_SYS_OPERATION("Start auto locate succeed.")
return true;
}
}

View File

@@ -1,5 +1,6 @@
#include "DmsSyncAction.h"
#include "dms_mq.h"
#include "log/LogManager.h"
#include <QEventLoop>
#include <QTimer>
@@ -45,6 +46,7 @@ DmsSyncActionResult DmsSyncAction::execute()
DmsSyncActionResult result(false, "mq error");
return result;
}
LOG_SYS_OPERATION(QString("GUI -> DMS : %1-%2, Message:%3").arg(mServerId).arg(mActionId).arg(mSendData));
if(!waitUntilSignalReceived())
{
DmsSyncActionResult result(false, "time out");

View File

@@ -1,7 +1,7 @@
#include "UsctStateManager.h"
#include "event/EventCenter.h"
#include "log/SystemOperationLog.h"
#include "log/LogManager.h"
#include "appvals/AppGlobalValues.h"
UsctStateManager* UsctStateManager::getInstance()

View File

@@ -9,7 +9,7 @@
#include <QRegExpValidator>
#include "event/EventCenter.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "db/SQLHelper.h"
#include "models/User.h"
#include "components/ULineEdit.h"

View File

@@ -6,7 +6,7 @@
#include "components/ULineEdit.h"
#include "models/User.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
ChangePasswordFormDialog::ChangePasswordFormDialog(QWidget* parent, Qt::WindowFlags f)
: GUIFormBaseDialog(parent, f)

View File

@@ -5,7 +5,7 @@
#include <QToolButton>
#include "event/EventCenter.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
GUIMessageDialog::GUIMessageDialog(QWidget *parent)
: QDialog(parent)

View File

@@ -16,7 +16,7 @@
#include "components/ULineEdit.h"
#include "action/GetWorkListAction.h"
#include "action/ActionCreator.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "event/EventCenter.h"
GetWorkListDialog::GetWorkListDialog(QSqlTableModel* aSqlModel, QTableView* aTableView, QWidget* aParent, Qt::WindowFlags aFlags)

View File

@@ -5,7 +5,7 @@
#include "utilities/InputFormatValidator.h"
#include "device/networkmanager.h"
#include "DialogManager.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include <QLabel>
#include <QVBoxLayout>

View File

@@ -4,7 +4,7 @@
#include "components/ErrorLabel.h"
#include "dialogs/DicomSettingsArea.h"
#include "json/jsonobject.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include <QVBoxLayout>

View File

@@ -1,7 +1,7 @@
#include "PacsSettingsDialog.h"
#include "dialogs/DicomSettingsArea.h"
#include "json/jsonobject.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "components/ErrorLabel.h"
#include <QVBoxLayout>

View File

@@ -4,7 +4,7 @@
#include "dialogs/DicomSettingsArea.h"
#include "json/jsonobject.h"
#include "recon/ReconManager.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include <QVBoxLayout>

View File

@@ -3,7 +3,7 @@
#include "components/ErrorLabel.h"
#include "dialogs/DicomSettingsArea.h"
#include "json/jsonobject.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include <QVBoxLayout>
#include <QLabel>

View File

@@ -13,7 +13,7 @@
#include "forms/scan/PatientInformationForm.h"
#include "event/EventCenter.h"
#include "dialogs/DialogManager.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "json/jsonobject.h"
#include "device/DeviceManager.h"
#include "dicom/WorkListManager.h"

View File

@@ -17,7 +17,7 @@
#include "db/SQLHelper.h"
#include "event/EventCenter.h"
#include "dialogs/DialogManager.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "components/VerticalTextToolButton.h"
#include "PatientAddDateDelegate.h"
#include "dicom/WorkListManager.h"

View File

@@ -11,7 +11,7 @@
#include "models/User.h"
#include "components/SlideTableView.h"
#include "event/EventCenter.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
AccountTableForm::AccountTableForm(QWidget* aParent)
: QWidget(aParent)

View File

@@ -18,7 +18,7 @@
#include "components/ListBox.h"
#include "components/ImageSwitch.h"
#include "components/BatteryWidget.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "utilities/DiskInfoWorker.h"
#include "utilities/GetLockScreenTimeHelper.h"
#include "utilities/GetProtocalHelper.h"

View File

@@ -2,7 +2,7 @@
#include "db/SQLHelper.h"
#include "event/EventCenter.h"
#include "dialogs/DialogManager.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include <QVBoxLayout>
#include <QLabel>

47
src/log/LogManager.cpp Normal file
View File

@@ -0,0 +1,47 @@
#include "LogManager.h"
#include <QThread>
LogManager* LogManager::getInstance()
{
static LogManager instance;
return &instance;
}
LogManager::LogManager()
: QObject()
, mThread(new QThread())
, mSysLog(new SystemOperationLog())
, mUserLog(new UserOperationLog())
{
mSysLog->moveToThread(mThread);
mUserLog->moveToThread(mThread);
connect(this, &LogManager::doWriteSystemOperationLog, mSysLog, &SystemOperationLog::log);
connect(this, &LogManager::doWriteUserOperationLog, mUserLog, &UserOperationLog::log);
mThread->start();
}
LogManager::~LogManager()
{
mThread->quit();
mThread->wait();
delete mUserLog;
delete mSysLog;
mThread->deleteLater();
}
void LogManager::writeSystemOperationLog(const QString& aMessage)
{
emit doWriteSystemOperationLog(aMessage);
}
void LogManager::writeUserOperationLog(const QString& aMessage)
{
emit doWriteUserOperationLog(aMessage);
}
QString LogManager::getCurrentUserOperationLogFile()
{
return mUserLog->currentLogFile();
}

41
src/log/LogManager.h Normal file
View File

@@ -0,0 +1,41 @@
#ifndef LOGMANAGER_H
#define LOGMANAGER_H
#include <QObject>
#include "SystemOperationLog.h"
#include "UserOperationLog.h"
class QThread;
#define LOG_SYS_OPERATION(...)\
LogManager::getInstance()->writeSystemOperationLog(__VA_ARGS__);
#define LOG_USER_OPERATION(...)\
LogManager::getInstance()->writeUserOperationLog(__VA_ARGS__);
class LogManager : public QObject
{
Q_OBJECT
public:
static LogManager* getInstance();
void writeSystemOperationLog(const QString& aMessage);
void writeUserOperationLog(const QString& aMessage);
QString getCurrentUserOperationLogFile();
signals:
void doWriteSystemOperationLog(const QString& aMessage);
void doWriteUserOperationLog(const QString& aMessage);
private:
LogManager();
~LogManager();
private:
QThread* mThread;
SystemOperationLog* mSysLog;
UserOperationLog* mUserLog;
};
#endif // LOGMANAGER_H

View File

@@ -10,15 +10,9 @@ namespace
const QString SYS_LOG_SUFFIX = "-sys.log";
}
SystemOperationLog* SystemOperationLog::getInstance()
{
static SystemOperationLog instance;
return &instance;
}
SystemOperationLog::SystemOperationLog()
: mCurrentFileName()
: QObject()
, mCurrentFileName()
, mLogFile()
, mStreamOut()
{

View File

@@ -1,23 +1,21 @@
#ifndef SYSTEMOPERATIONLOG_H
#define SYSTEMOPERATIONLOG_H
#include <QObject>
#include <QDateTime>
#include <QFile>
#include <QTextStream>
#define LOG_SYS_OPERATION(...)\
SystemOperationLog::getInstance()->log(__VA_ARGS__);
class SystemOperationLog
class SystemOperationLog : public QObject
{
Q_OBJECT
public:
static SystemOperationLog* getInstance();
void log(const QString& aOperationText);
SystemOperationLog();
~SystemOperationLog();
void reloadFile();
private:
SystemOperationLog();
~SystemOperationLog();
public slots:
void log(const QString& aOperationText);
private:
QString mCurrentFileName;

View File

@@ -12,6 +12,24 @@ namespace
const QString logDir = "./log/UserOperationLog";
}
UserOperationLog::UserOperationLog()
: QObject()
, currentFileName()
, logFile()
, out()
{
init();
}
UserOperationLog::~UserOperationLog()
{
if (logFile.isOpen())
{
logFile.flush();
logFile.close();
}
}
void UserOperationLog::init() {
QDir log_dir("./");
if (!log_dir.exists("log")) log_dir.mkdir("log");
@@ -44,20 +62,6 @@ QString addSpace(const char* str)
return s;
}
QString getOperationName(UserOperation operation)
{
switch (operation) {
#define ADD_OPERATION(name)\
case name: return addSpace(#name);
USER_OPERATIONS()
#undef ADD_OPERATION
default:
return "unknow error";
}
}
void UserOperationLog::log(const QString& aOperationText)
{
reloadFile();

View File

@@ -1,53 +1,18 @@
#ifndef GUI_USEROPERATIONLOG_H
#define GUI_USEROPERATIONLOG_H
#include <QObject>
#include <QDateTime>
#include <QFile>
#include <QTextStream>
#define USER_OPERATIONS()\
ADD_OPERATION(Login)\
ADD_OPERATION(Logout)\
ADD_OPERATION(ChangePassword)\
ADD_OPERATION(ChangeUserName)\
ADD_OPERATION(AddPatient)\
ADD_OPERATION(ChangePatientInfo)\
ADD_OPERATION(DeletePatient)\
ADD_OPERATION(SelectPatient)\
ADD_OPERATION(StartRefresh)\
ADD_OPERATION(StopScan)\
ADD_OPERATION(StopPreview)\
ADD_OPERATION(StartPreview)\
ADD_OPERATION(StartScan)\
ADD_OPERATION(ConfirmError)\
ADD_OPERATION(AdminChangeAcountInformation)
#define LOG_USER_OPERATION(...)\
UserOperationLog::Default()->log(__VA_ARGS__);
enum UserOperation{
#define ADD_OPERATION(name) name,\
USER_OPERATIONS()
#undef ADD_OPERATION
};
class UserOperationLog {
class UserOperationLog : public QObject
{
Q_OBJECT
public:
UserOperationLog(){}
~UserOperationLog(){
if (logFile.isOpen())
{
logFile.flush();
logFile.close();
}
}
UserOperationLog();
~UserOperationLog();
void init();
static UserOperationLog* Default(){
static UserOperationLog d;
return &d;
}
static void cleanHistoryLog();
static QStringList getHistoryLogFiles();

View File

@@ -7,8 +7,6 @@
#include <QDebug>
#include <QThread>
#include <QProcess>
#include <QTimer>
#include "log/UserOperationLog.h"
#include <QTranslator>
#include <src/device/DeviceManager.h>
#include "dialogs/DialogManager.h"
@@ -20,7 +18,7 @@
#include "utilities/TouchScreenSignalSender.h"
#include "keyboard/KeyboardManager.h"
#include "appvals/AppGlobalValues.h"
#include "log/SystemOperationLog.h"
#include "log/LogManager.h"
#include <QFileSystemWatcher>
QString loadFontFromFile(QString path)
@@ -95,9 +93,8 @@ int main(int argc, char* argv[])
AppGlobalValues::setDBconnected(false);
MainWindow w;
DialogManager::Default()->init(&w);
UserOperationLog::Default()->init();
LogManager::getInstance();
LOG_USER_OPERATION("GUI Started");
SystemOperationLog::getInstance();
QObject::connect(TouchScreenSignalSender::getInstance(), SIGNAL(touchScreen()), Locker::getInstance(), SLOT(refreshTimer()));
// QList<Qt::GestureType> gestures;

View File

@@ -1,7 +1,7 @@
#include "ReconManager.h"
#include "ReconClient.h"
#include "json/jsonobject.h"
#include "log/SystemOperationLog.h"
#include "log/LogManager.h"
#include <QTimer>
#include "QDebug"

View File

@@ -10,7 +10,7 @@
#include "event/EventCenter.h"
#include "dialogs/DialogManager.h"
#include "models/User.h"
#include "log/UserOperationLog.h"
#include "log/LogManager.h"
#include "json/jsonobject.h"
#include "components/ULineEdit.h"
#include "appvals/AppGlobalValues.h"