Merge branch 'master' of github.com:QuasarApp/QuasarAppLib

This commit is contained in:
Andrei Yankovich 2020-04-04 19:50:58 +03:00
commit eea36f0e62
3 changed files with 37 additions and 41 deletions

View File

@ -59,5 +59,5 @@ RESOURCES += \
include(Etalons/qmake/ccache.pri)
VERSION = 1.3.1
VERSION = 1.3.2

View File

@ -11,6 +11,7 @@
#include <QFileInfo>
#include <iostream>
#include <QDateTime>
#include <QCoreApplication>
#ifdef Q_OS_WIN
#include "windows.h"
@ -28,39 +29,28 @@ bool Params::isEndable(const QString& key) {
return params.contains(key);
}
void Params::verboseLog(const QString &log, VerboseLvl vLvl) {
void Params::log(const QString &log, VerboseLvl vLvl) {
writeLoginFile(log, vLvl);
if (isEndable("verbose")) {
auto lvl = static_cast<VerboseLvl>(getArg("verbose", DEFAULT_VERBOSE_LVL).toInt());
auto lvl = static_cast<VerboseLvl>(getArg("verbose").toInt());
if (vLvl <= lvl) {
if (vLvl <= lvl) {
switch (vLvl) {
switch (vLvl) {
case VerboseLvl::Error: {
qCritical() << lvlToString(vLvl) + ": " + log;
break;
}
case VerboseLvl::Warning: {
qWarning() << lvlToString(vLvl) + ": " + log;
break;
}
case VerboseLvl::Info: {
qInfo() << lvlToString(vLvl) + ": " + log;
break;
}
default: {
qDebug() << lvlToString(vLvl) + ": " + log;
break;
}
}
case VerboseLvl::Error:
case VerboseLvl::Warning: {
std::cerr << lvlToString(vLvl) + ": " + log.toStdString() << std::endl;
break;
}
default: {
std::cout << lvlToString(vLvl) + ": " + log.toStdString() << std::endl;
break;
}
}
}
}
@ -70,7 +60,6 @@ Help::Charters Params::getparamsHelp() {
"Base Options", {
{"-verbose (level 1 - 3)", "Shows debug log"},
{"-fileLog (path to file)", "Sets path of log file. Default it is path to executable file with suffix '.log'"},
{"noWriteInFileLog", "Disables loging into file"}
}
}
};
@ -105,7 +94,7 @@ QString Params::timeString() {
return QDateTime::currentDateTime().toString();
}
QString Params::lvlToString(VerboseLvl vLvl) {
std::string Params::lvlToString(VerboseLvl vLvl) {
switch (vLvl) {
case VerboseLvl::Error: {
@ -123,18 +112,19 @@ QString Params::lvlToString(VerboseLvl vLvl) {
case VerboseLvl::Debug: {
return "Verbose log";
}
default: return "";
}
return "";
}
bool Params::writeLoginFile(const QString &log, VerboseLvl vLvl) {
if (!isEndable("noWriteInFileLog")) {
if (isEndable("fileLog")) {
QString path = getStrArg("appPath") + "/" + getStrArg("appName") + ".log";
if (isEndable("fileLog")) {
QString path = getStrArg("fileLog");
auto file = getStrArg("fileLog");
if (file.size()) {
QString path = file;
}
QFile logFile(path);
@ -142,7 +132,7 @@ bool Params::writeLoginFile(const QString &log, VerboseLvl vLvl) {
if (logFile.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) {
QTextStream stream(&logFile);
stream << timeString() <<"| " << lvlToString(vLvl) + ": " + log << endl;
stream << timeString() <<"| " << QString::fromStdString(lvlToString(vLvl)) + ": " + log << endl;
logFile.close();
} else {
return false;
@ -184,7 +174,8 @@ bool Params::parseParams(const QStringList &paramsArray) {
memset(path, 0, sizeof path);
if (readlink("/proc/self/exe", path, 2048) < 0) {
qWarning() << "parseParams can't get self path!" ;
QuasarAppUtils::Params::log("parseParams can't get self path!",
QuasarAppUtils::Error);
return false;
}
params ["appPath"] = QFileInfo(path).absolutePath();
@ -202,7 +193,9 @@ bool Params::parseParams(const QStringList &paramsArray) {
params[paramsArray[i].mid(1)] = paramsArray[i + 1];
i++;
} else {
qWarning() << "Missing argument for " + paramsArray[i] ;
QuasarAppUtils::Params::log("Missing argument for " + paramsArray[i],
QuasarAppUtils::Error);
return false;
}
} else {
params[paramsArray[i]] = "";

View File

@ -19,17 +19,20 @@ namespace QuasarAppUtils {
*/
enum VerboseLvl {
Debug = 0x0,
Info = 0x0,
Error = 0x1,
Warning = 0x2,
Info = 0x3,
Debug = 0x3,
};
#define DEFAULT_VERBOSE_LVL "1"
class QUASARAPPSHARED_EXPORT Params
{
private:
static QString timeString();
static QString lvlToString(VerboseLvl vLvl);
static std::string lvlToString(VerboseLvl vLvl);
static bool writeLoginFile(const QString& log, VerboseLvl vLvl = VerboseLvl::Debug);
public:
@ -88,10 +91,10 @@ public:
static bool isEndable(const QString& key);
/**
* @brief verboseLog - print text on console if the flag "vergose" is enabled
* @brief log - print text on console if the flag "vergose" is enabled
* @param log - printed text
*/
static void verboseLog(const QString& log, VerboseLvl vLvl = VerboseLvl::Debug);
static void log(const QString& log, VerboseLvl vLvl = VerboseLvl::Debug);
/**
* @brief getparamsHelp