48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
|
|
//
|
||
|
|
// Created by Krad on 2021/11/19.
|
||
|
|
//
|
||
|
|
|
||
|
|
#include "UserOperationLog.h"
|
||
|
|
#include <QDate>
|
||
|
|
#include <QDir>
|
||
|
|
#include "appvals/AppGlobalValues.h"
|
||
|
|
#include "models/User.h"
|
||
|
|
|
||
|
|
|
||
|
|
void UserOperationLog::init() {
|
||
|
|
QDir log_dir("./");
|
||
|
|
if (!log_dir.exists("./log")) log_dir.mkdir("log");
|
||
|
|
currentFileName = "./log/" + QDate::currentDate().toString("yyyy-MM-dd")+QString("-op.log");
|
||
|
|
logFile.setFileName(currentFileName);
|
||
|
|
if (logFile.exists())
|
||
|
|
{
|
||
|
|
logFile.open(QFile::OpenModeFlag::Append | QFile::OpenModeFlag::Text);
|
||
|
|
} else{
|
||
|
|
logFile.open(QFile::OpenModeFlag::NewOnly | QFile::OpenModeFlag::Text);
|
||
|
|
}
|
||
|
|
out.setDevice(&logFile);
|
||
|
|
}
|
||
|
|
|
||
|
|
QString getOperationName(UserOperation operation)
|
||
|
|
{
|
||
|
|
switch (operation) {
|
||
|
|
#define ADD_OPERATION(name)\
|
||
|
|
case name: return #name;
|
||
|
|
USER_OPERATIONS()
|
||
|
|
#undef ADD_OPERATION
|
||
|
|
default:
|
||
|
|
return "unknow error";
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
void UserOperationLog::log(UserOperation operation, bool processing) {
|
||
|
|
QDateTime now = QDateTime::currentDateTime();
|
||
|
|
AppGlobalValues::setLastOperationTime(now);
|
||
|
|
AppGlobalValues::setLastOperation(operation);
|
||
|
|
QString operationName = getOperationName(operation);
|
||
|
|
AppGlobalValues::setInProcessing(processing);
|
||
|
|
QString UserName = User::Current()->getUserCode().isEmpty()?"anonymous":User::Current()->getUserCode();
|
||
|
|
out << now.toString(Qt::DateFormat::ISODateWithMs)<<"\t"<<UserName<<"\t"<<operationName<<endl;
|
||
|
|
}
|