Skip to content

Commit

Permalink
Logdatei verbessert
Browse files Browse the repository at this point in the history
Log Datei Ort optimiert
Log Output verbessert
  • Loading branch information
Tim committed Feb 9, 2023
1 parent df21480 commit 41eed17
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 46 deletions.
73 changes: 51 additions & 22 deletions Modules/misc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ bool Misc::updateCheck(){
int updateAvailable;
QString aVer = QCoreApplication::applicationVersion();

qDebug() << "Update wird abgerufen...";
qDebug() << "Aktuell installiert ist:" << aVer;
qInfo() << "Aktuell installierte Version ist:" << aVer;
qInfo() << "Update Funktion wird gestartet...";

QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkRequest request;
Expand All @@ -35,11 +35,12 @@ bool Misc::updateCheck(){
QObject context;
QObject::connect(reply, &QNetworkReply::finished, &context, [reply, &misc](){
if (reply->error()){
qDebug() << "Fehler beim abrufen des Versionsnummer, mit Fehler:" << reply->errorString();
qWarning() << "Fehler beim abrufen der Versionsnummer! Mit Fehler:" << reply->errorString();
}else{
QJsonDocument jsonResponse = QJsonDocument::fromJson(reply->readAll());
QJsonObject jsonObject = jsonResponse.object();
nVer = jsonObject["tag_name"].toString();
qInfo() << "Versionsabfrage erfolgreich";
}
reply->deleteLater();;
emit misc.responseReceivedVer();
Expand All @@ -49,9 +50,9 @@ bool Misc::updateCheck(){

if(nVer.at(0).digitValue()){
nVer.remove(0,1);
qDebug() << "Neuste Version ist:" << nVer;
qInfo() << "Neuste Version ist:" << nVer;
}else{
qDebug() << "Die Version: " << nVer << " hat ein ungültiges Format!";
qWarning() << "Die Version:" << nVer << "hat ein ungültiges Format!";
}

if(QSysInfo::productType() == "macos") {
Expand All @@ -66,6 +67,7 @@ bool Misc::updateCheck(){
updateAvailable = QVersionNumber::compare(nv,av);

if(updateAvailable >= 1){
qInfo() << "Es ist ein Update verfügbar, Updateindex ist" << updateAvailable;
QMessageBox msg;
QString title = QObject::tr("Update verfügbar");
QString text = QObject::tr("Es gibt eine neue Version vom SpäneRechner!\nAktuell installiert V%0, verfügbar ist V%1.\nSoll das Update durchgeführt werden?").arg(aVer, nVer);
Expand All @@ -89,6 +91,7 @@ bool Misc::updateCheck(){
return false;
}
}
qInfo() << "Es ist kein Update verfügbar!";

return false;
}
Expand All @@ -99,29 +102,29 @@ void Misc::UPDATE(){
QString filter;
QString DateiName;

qDebug() << "Update wird gestartet";
qInfo() << "Update wird gestartet...";

if(type == "windows"){
filter = "windows-x64-installer";
DateiName = "installer.exe";
qDebug() << "Update wird für" << QSysInfo::prettyProductName() << "ausgeführt!";
qInfo() << "Update wird für" << QSysInfo::prettyProductName() << "ausgeführt!";

}else if(type == "macos"){
//filter = "windows-installer";
//DateiName = "installer.exe";
qDebug() << "Update wird für" << QSysInfo::prettyProductName() << "ausgeführt!";
qDebug() << "Das automatische Update wird im moment nur unter Windows unterstützt!";
qInfo() << "Update wird für" << QSysInfo::prettyProductName() << "ausgeführt!";
qWarning() << "Das automatische Update wird im moment nur unter Windows unterstützt!";
return;

}else if(type == ""){
//filter = "windows-installer";
//DateiName = "installer.exe";
qDebug() << "Update wird für" << QSysInfo::prettyProductName() << "ausgeführt!";
qDebug() << "Das automatische Update wird im moment nur unter Windows unterstützt!";
qInfo() << "Update wird für" << QSysInfo::prettyProductName() << "ausgeführt!";
qWarning() << "Das automatische Update wird im moment nur unter Windows unterstützt!";
return;

}else{
qDebug() << "Bestimmung des Systems Fehlgeschlagen";
qWarning() << "Bestimmung des Systems Fehlgeschlagen";
qDebug() << "Der Systemname ist:" << QSysInfo::productType();
return;
}
Expand All @@ -136,14 +139,14 @@ void Misc::UPDATE(){
QObject context;
connect(reply, &QNetworkReply::finished, &context, [reply, &misc, filter]() {
if (reply->error()){
qDebug() << "Fehler beim abrufen der Download url, mit Fehler:" << reply->errorString();
qWarning() << "Fehler beim abrufen der Download url, mit Fehler:" << reply->errorString();
}else{
QJsonDocument jsonResponse = QJsonDocument::fromJson(reply->readAll());
QJsonArray assets = jsonResponse.object()["assets"].toArray();
for (const auto &asset : assets) {
downloadUrl = asset.toObject()["browser_download_url"].toString();
if(downloadUrl.contains(filter)) {
qDebug() << "Download url:" << downloadUrl;
qInfo() << "Download url:" << downloadUrl;
}
}
}
Expand All @@ -153,24 +156,25 @@ void Misc::UPDATE(){
misc.waitForResponseUrl();

if(downloadUrl.isEmpty()){
qDebug() << "Es ist ein Fehler beim Abrufen der url aufgetreten!";
qWarning() << "Es ist ein Fehler beim Abrufen der url aufgetreten!";
return;
}

if(dir.exists()){
qDebug() << "Der 'temp' Ordner ist vorhanden und wird gelöscht!";
qInfo() << "Der 'temp' Ordner ist vorhanden und wird gelöscht!";
dir.removeRecursively();
}

qInfo() << "Der 'temp' Ordner wird erstellt!";
dir.mkdir(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/temp");

reply = manager->get(QNetworkRequest(QUrl(downloadUrl)));
QEventLoop download;
connect(reply, &QNetworkReply::finished, &download, &QEventLoop::quit);
qDebug() << "Download der Datei gestartet...";
qInfo() << "Download der Datei wird gestartet...";
download.exec();
if(reply->error()){
qDebug() << "Download der Datei fehlgeschlagen!";
qDebug() << reply->errorString();
qWarning() << "Fehler beim Download der Datei, mit Fehler:" << reply->errorString();
}else{
QFile file(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/temp/"+DateiName);
file.open(QIODevice::WriteOnly);
Expand All @@ -179,7 +183,7 @@ void Misc::UPDATE(){
reply->deleteLater();
}

qDebug() << "Download der Datei erfolgreich!";
qInfo() << "Download der Datei erfolgreich!";

if(type == "windows"){
QSettings settings(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + "/config.ini", QSettings::IniFormat);
Expand All @@ -189,10 +193,10 @@ void Misc::UPDATE(){
QTextStream stream(&autoUpdater);
stream << "@echo off\ntaskkill /im SpaeneRechner.exe\nstart " << QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/temp/"+DateiName;
autoUpdater.close();
qDebug() << "Auto Update script für " << type << " erstellt!";
qInfo() << "Auto Update script für" << type << "erstellt!";
}

qDebug() << "Automatische installation gestartet!";
qInfo() << "Automatische installation gestartet!";
QProcess autoStart;
settings.setValue("lastCloseOnUpdate", true);
autoStart.start("cmd.exe", QStringList() << "/c" << QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/temp/"+"autoUpdater.bat");
Expand Down Expand Up @@ -272,7 +276,32 @@ int Misc::MSGbox(QString title, QString text, int type, int buttonStyle, QString
break;
}

qInfo();
qInfo() << "Messagebox";
qInfo() << "Title:" << title;
qInfo() << "Message:" << text;
qInfo() << "Type:" << msg.icon();
qInfo() << "Buttonstyle:" << buttonStyle;
qInfo() << "Genaue Beschreibung:" << error;
qInfo();

int x = msg.exec();

return x;
}

void Misc::hostInfo(){
qInfo() << "Build CPU Architecture:" << QSysInfo::buildCpuArchitecture();
qInfo() << "Fullbuild ID:" << QSysInfo::buildAbi();
qInfo();
qInfo() << "Current CPU Architecture:" << QSysInfo::currentCpuArchitecture();
qInfo() << "Host Computer Name:" << QSysInfo::machineHostName();
qInfo() << "Betriebsystem:" << QSysInfo::prettyProductName();
qInfo() << "Betriebsystem Type:" << QSysInfo::productType();
qInfo() << "Betriebsystem Version:" << QSysInfo::productVersion();
qInfo() << "Kernel Type:" << QSysInfo::kernelType();
qInfo() << "Interne Version:" << QSysInfo::kernelVersion();
qInfo() << "Boot ID:" << QSysInfo::bootUniqueId();

return;
}
1 change: 1 addition & 0 deletions Modules/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class Misc: public QObject{
static bool updateCheck();
static void UPDATE();
static int MSGbox(QString title, QString text, int type, int buttonStyle, QString error = "");
static void hostInfo();
void waitForResponseVer();
void waitForResponseUrl();
signals:
Expand Down
5 changes: 0 additions & 5 deletions SpaeneRechner.pro
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ linux-clang:CONFIG += staticlib

INCLUDEPATH += $$PWD/xlnt/

DEFINES += LOG_FILE_NAME=\\\"debug.log\\\"
#Debug / Release difference
CONFIG(release, debug|release) {
message("building in release")
Expand Down Expand Up @@ -88,9 +86,6 @@ qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

DISTFILES += \
SpaeneRechner_de_DE.ts

RESOURCES += \
ressources.qrc

Expand Down
12 changes: 7 additions & 5 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <QLocale>
#include <QTranslator>
#include <QTime>
#include <QDate>
#include <QMutex>

#include "Modules/createDatabase.cpp"
Expand All @@ -19,6 +20,7 @@ void customeMessageOutput(QtMsgType type, const QMessageLogContext &context, con
QHash<QtMsgType, QString> msgLevelHash({{QtDebugMsg, "Debug"}, {QtInfoMsg, "Info"}, {QtWarningMsg, "Warning"}, {QtCriticalMsg, "Critical"}, {QtFatalMsg, "Fatal"}});
QByteArray localMsg = msg.toLocal8Bit();
QByteArray time = QTime::currentTime().toString("hh:mm:ss.zzz").toLocal8Bit();
QByteArray date = QDate::currentDate().toString("yyyy-MM-dd").toLocal8Bit();
QString logLevelName = msgLevelHash[type];
QByteArray logLevelMsg = logLevelName.toLocal8Bit();

Expand All @@ -29,13 +31,13 @@ void customeMessageOutput(QtMsgType type, const QMessageLogContext &context, con
#endif

if(logToFile){
QString txt = QString("%1 | %2: %3 (%4)").arg(time, logLevelName, msg, context.file);
QFile out(LOG_FILE_NAME);
QString txt = QString("%0 %1 | %2: %3 (%4)").arg(date, time, logLevelName, msg, context.file);
QFile out(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/.log");
out.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream stream(&out);
stream << txt << Qt::endl;
}else{
fprintf(stderr, "%s | %s: %s (%s:%u, %s)\n", time.constData(), logLevelMsg.constData(), localMsg.constData(), context.file, context.line, context.function);
fprintf(stderr, "%s %s | %s: %s (%s:%u, %s)\n", date.constData(), time.constData(), logLevelMsg.constData(), localMsg.constData(), context.file, context.line, context.function);
fflush(stderr);
}

Expand All @@ -48,8 +50,8 @@ int main(int argc, char *argv[]){
QCoreApplication::setApplicationVersion("0.7.4");
QCoreApplication::setOrganizationDomain("https://github.com/EinRainerZufall/SpaeneRechner");

qDebug() << "Das Programm wurde mit QT Version:" << QT_VERSION_STR << "kompiliert!";
qDebug() << "Das Kompilierungsdatum ist der:" << __DATE__ << "um:" << __TIME__;
qInfo() << "Das Programm wurde mit QT Version:" << QT_VERSION_STR << "kompiliert!";
qInfo() << "Kompiliert wurde am:" << __DATE__ << "um:" << __TIME__ << "Uhr";

QApplication a(argc, argv);
MainWindow w;
Expand Down
37 changes: 23 additions & 14 deletions mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,20 +52,26 @@ MainWindow::MainWindow(QWidget *parent)
installerVer.close();
}

// Sicherheitscheck das Log Datei nicht zu groß wird
if(QFile(LOG_FILE_NAME).size() > 2e6){
int x = Misc::MSGbox(tr("Warnung"), tr("Die '%0' Datei ist größer als 2 Mb!\nSoll sie gelöscht werden?").arg(LOG_FILE_NAME), 3, 2);
// PC Info in .log Datei schreiben
Misc::hostInfo();

// Sicherheitscheck das Log Datei nicht zu groß wird QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/.log"
if(QFile(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/.log").size() > 5e6){
int x = Misc::MSGbox(tr("Warnung"), tr("Die '%0' Datei ist größer als 5 Mb!\nSoll sie gelöscht werden?")
.arg(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/.log"), 3, 2);
QDir dir;

switch(x){
case QMessageBox::Yes:
dir.remove(LOG_FILE_NAME);
dir.remove(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/.log");
break;
default:
break;
}
}
qDebug() << "Die '" << LOG_FILE_NAME << "' Datei ist " << (QFile(LOG_FILE_NAME).size() / 1e6) << " Mb groß!";
qInfo() << "Die '.log' Datei ist "
<< (QFile(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/.log").size() / 1e6)
<< " Mb groß!";

#ifdef QT_DEBUG
// Debug Sachen
Expand Down Expand Up @@ -263,13 +269,13 @@ MainWindow::MainWindow(QWidget *parent)

// Update Check
if(Settings::autoUpdate()){
qDebug() << "Automatische Updatesuche ist eingeschaltet";
qInfo() << "Die automatische Updatesuche ist eingeschaltet";
ui->autoUpdateIn->setCurrentIndex(0);
if(Misc::updateCheck()){
Misc::UPDATE();
}
}else{
qDebug() << "Automatische Updatesuche ist ausgeschaltet";
qInfo() << "Die automatische Updatesuche ist ausgeschaltet";
ui->autoUpdateIn->setCurrentIndex(1);
}

Expand Down Expand Up @@ -1228,8 +1234,8 @@ void MainWindow::on_progressBarTurn_valueChanged(int value){
void MainWindow::on_btnCreateAll_clicked(){
setCursor(Qt::CursorShape::WaitCursor);

qInfo() << "Die .xlsx wird gelöscht!";
createDatabase::deleteWorkbook();
qDebug() << "XLSX Datei gelöscht!";

createDatabase::createSimple();
createDatabase::createDynamic();
Expand All @@ -1239,7 +1245,7 @@ void MainWindow::on_btnCreateAll_clicked(){
createDatabase::createPlan45();
createDatabase::createTurn();
createDatabase::createThread();
qDebug() << "XLSX Datei neu erstellt!";
qInfo() << "Die .xlsx Datei wird neu erstellt!";

setCursor(Qt::CursorShape::ArrowCursor);
}
Expand All @@ -1263,7 +1269,7 @@ void MainWindow::on_btnSettingsWrite_clicked(){
}

Settings::write(dis, FrN, FrPc, bed, cutMat, BoWinkel, cooling, TurN, TurPc, index, update);
qDebug() << "Einstellungen per Button gespeichert!";
qInfo() << "Einstellungen per Button gespeichert!";

setCursor(Qt::CursorShape::ArrowCursor);
}
Expand All @@ -1278,8 +1284,8 @@ void MainWindow::on_btnOpenXLSX_clicked(){
void MainWindow::on_btnCreateSettings_clicked(){
setCursor(Qt::CursorShape::WaitCursor);

qInfo() << "Die .ini Datei wird gelöscht!";
Settings::deleteAll();
qDebug() << "Einstellungen gelöscht!";

int dis = ui->DisclaimerIn->currentIndex();
int FrN = ui->maxMillSpeedIn->text().toInt();
Expand All @@ -1297,7 +1303,7 @@ void MainWindow::on_btnCreateSettings_clicked(){
}

Settings::write(dis, FrN, FrPc, bed, cutMat, BoWinkel, cooling, TurN, TurPc, index, update);
qDebug() << "Einstellungen neu erstellt!";
qInfo() << "Die .ini Datei wird neu erstellt!";

setCursor(Qt::CursorShape::ArrowCursor);
}
Expand Down Expand Up @@ -1333,12 +1339,15 @@ void MainWindow::closeEvent(QCloseEvent *event){
}

Settings::write(dis, FrN, FrPc, bed, cutMat, BoWinkel, cooling, TurN, TurPc, index, update);
qDebug() << "Einstellungen automatisch gespeichert!";
qInfo() << "Einstellungen sind automatisch gespeichert worden!";
qInfo() << "Das Programm wird mit Code" << 0 << "beendet";

QFile out(LOG_FILE_NAME);
#ifndef QT_DEBUG
QFile out(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)+"/.log");
out.open(QIODevice::WriteOnly | QIODevice::Append);
QTextStream stream(&out);
stream << "-------------------------------------------------------------------------------------------" << Qt::endl;
#endif

setCursor(Qt::CursorShape::ArrowCursor);

Expand Down

0 comments on commit 41eed17

Please sign in to comment.