Skip to content
Snippets Groups Projects
Commit 8a486a64 authored by Andreas Traczyk's avatar Andreas Traczyk
Browse files

mainapp: rework logging on Windows

+ Removes the console log management code which is present in jamid
  using https://review.jami.net/c/jami-daemon/+/21251.
+ Adds back file logging which has been partially broken since
  the log monitoring feature was added.

Change-Id: I07681b1c8d48702678596fbc302c21f87284b6e4
parent ee2b6d21
No related branches found
No related tags found
No related merge requests found
...@@ -61,11 +61,11 @@ class LRCInstance : public QObject ...@@ -61,11 +61,11 @@ class LRCInstance : public QObject
QML_PROPERTY(bool, currentAccountAvatarSet) QML_PROPERTY(bool, currentAccountAvatarSet)
public: public:
explicit LRCInstance(migrateCallback willMigrateCb = {}, explicit LRCInstance(migrateCallback willMigrateCb,
migrateCallback didMigrateCb = {}, migrateCallback didMigrateCb,
const QString& updateUrl = {}, const QString& updateUrl,
ConnectivityMonitor* connectivityMonitor = {}, ConnectivityMonitor* connectivityMonitor,
bool muteDring = false); bool muteDring);
~LRCInstance() = default; ~LRCInstance() = default;
void finish(); void finish();
......
...@@ -54,35 +54,6 @@ ...@@ -54,35 +54,6 @@
#include <gnutls/gnutls.h> #include <gnutls/gnutls.h>
#endif #endif
static void
consoleDebug()
{
#ifdef Q_OS_WIN
AllocConsole();
SetConsoleCP(CP_UTF8);
FILE* fpstdout = stdout;
freopen_s(&fpstdout, "CONOUT$", "w", stdout);
FILE* fpstderr = stderr;
freopen_s(&fpstderr, "CONOUT$", "w", stderr);
COORD coordInfo;
coordInfo.X = 130;
coordInfo.Y = 9000;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coordInfo);
SetConsoleMode(GetStdHandle(STD_OUTPUT_HANDLE), ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS);
#endif
}
static QString
getDebugFilePath()
{
QDir logPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation));
logPath.cdUp();
return QString(logPath.absolutePath() + "/jami/jami.log");
}
void void
ScreenInfo::setCurrentFocusWindow(QWindow* window) ScreenInfo::setCurrentFocusWindow(QWindow* window)
{ {
...@@ -110,9 +81,7 @@ void ...@@ -110,9 +81,7 @@ void
MainApplication::vsConsoleDebug() MainApplication::vsConsoleDebug()
{ {
#ifdef _MSC_VER #ifdef _MSC_VER
/* // Print debug to output window if using VS.
* Print debug to output window if using VS.
*/
QObject::connect(&lrcInstance_->behaviorController(), QObject::connect(&lrcInstance_->behaviorController(),
&lrc::api::BehaviorController::debugMessageReceived, &lrc::api::BehaviorController::debugMessageReceived,
[](const QString& message) { [](const QString& message) {
...@@ -121,20 +90,6 @@ MainApplication::vsConsoleDebug() ...@@ -121,20 +90,6 @@ MainApplication::vsConsoleDebug()
#endif #endif
} }
void
MainApplication::fileDebug(QFile* debugFile)
{
QObject::connect(&lrcInstance_->behaviorController(),
&lrc::api::BehaviorController::debugMessageReceived,
[debugFile](const QString& message) {
if (debugFile->open(QIODevice::WriteOnly | QIODevice::Append)) {
auto msg = (message + "\n").toStdString();
debugFile->write(msg.c_str(), qstrlen(msg.c_str()));
debugFile->close();
}
});
}
MainApplication::MainApplication(int& argc, char** argv) MainApplication::MainApplication(int& argc, char** argv)
: QApplication(argc, argv) : QApplication(argc, argv)
{ {
...@@ -166,10 +121,6 @@ MainApplication::init() ...@@ -166,10 +121,6 @@ MainApplication::init()
setWindowIcon(QIcon(":/images/jami.ico")); setWindowIcon(QIcon(":/images/jami.ico"));
if (runOptions_[Option::Debug].toBool()) {
consoleDebug();
}
Utils::removeOldVersions(); Utils::removeOldVersions();
settingsManager_->loadTranslations(); settingsManager_->loadTranslations();
setApplicationFont(); setApplicationFont();
...@@ -215,13 +166,6 @@ MainApplication::init() ...@@ -215,13 +166,6 @@ MainApplication::init()
[this] { engine_->quit(); }, [this] { engine_->quit(); },
Qt::DirectConnection); Qt::DirectConnection);
if (runOptions_[Option::DebugToFile].toBool()) {
debugFile_.reset(new QFile(getDebugFilePath()));
debugFile_->open(QIODevice::WriteOnly | QIODevice::Truncate);
debugFile_->close();
fileDebug(debugFile_.get());
}
if (runOptions_[Option::DebugToConsole].toBool()) { if (runOptions_[Option::DebugToConsole].toBool()) {
vsConsoleDebug(); vsConsoleDebug();
} }
...@@ -336,13 +280,10 @@ MainApplication::parseArguments() ...@@ -336,13 +280,10 @@ MainApplication::parseArguments()
QCommandLineOption debugOption({"d", "debug"}, "Debug out."); QCommandLineOption debugOption({"d", "debug"}, "Debug out.");
parser.addOption(debugOption); parser.addOption(debugOption);
QCommandLineOption debugFileOption({"f", "file"}, "Debug to file."); QCommandLineOption logFileOption({"f", "file"}, "Debug to <file>.", "file");
parser.addOption(debugFileOption); parser.addOption(logFileOption);
#ifdef Q_OS_WINDOWS #ifdef Q_OS_WINDOWS
QCommandLineOption debugConsoleOption({"c", "console"}, "Debug out to IDE console.");
parser.addOption(debugConsoleOption);
QCommandLineOption updateUrlOption({"u", "url"}, "<url> for debugging version queries.", "url"); QCommandLineOption updateUrlOption({"u", "url"}, "<url> for debugging version queries.", "url");
parser.addOption(updateUrlOption); parser.addOption(updateUrlOption);
...@@ -357,9 +298,12 @@ MainApplication::parseArguments() ...@@ -357,9 +298,12 @@ MainApplication::parseArguments()
runOptions_[Option::StartMinimized] = parser.isSet(minimizedOption); runOptions_[Option::StartMinimized] = parser.isSet(minimizedOption);
runOptions_[Option::Debug] = parser.isSet(debugOption); runOptions_[Option::Debug] = parser.isSet(debugOption);
runOptions_[Option::DebugToFile] = parser.isSet(debugFileOption); if (parser.isSet(logFileOption)) {
auto logFileValue = parser.value(logFileOption);
auto logFile = logFileValue.isEmpty() ? Utils::getDebugFilePath() : logFileValue;
qputenv("JAMI_LOG_FILE", logFile.toStdString().c_str());
}
#ifdef Q_OS_WINDOWS #ifdef Q_OS_WINDOWS
runOptions_[Option::DebugToConsole] = parser.isSet(debugConsoleOption);
runOptions_[Option::UpdateUrl] = parser.value(updateUrlOption); runOptions_[Option::UpdateUrl] = parser.value(updateUrlOption);
#endif #endif
runOptions_[Option::TerminationRequested] = parser.isSet(terminateOption); runOptions_[Option::TerminationRequested] = parser.isSet(terminateOption);
...@@ -439,9 +383,6 @@ MainApplication::initSystray() ...@@ -439,9 +383,6 @@ MainApplication::initSystray()
void void
MainApplication::cleanup() MainApplication::cleanup()
{ {
#ifdef Q_OS_WIN
FreeConsole();
#endif
QApplication::exit(0); QApplication::exit(0);
} }
......
...@@ -72,7 +72,6 @@ public: ...@@ -72,7 +72,6 @@ public:
StartMinimized = 0, StartMinimized = 0,
Debug, Debug,
DebugToConsole, DebugToConsole,
DebugToFile,
UpdateUrl, UpdateUrl,
MuteJamid, MuteJamid,
TerminationRequested, TerminationRequested,
...@@ -100,7 +99,6 @@ Q_SIGNALS: ...@@ -100,7 +99,6 @@ Q_SIGNALS:
private: private:
void vsConsoleDebug(); void vsConsoleDebug();
void fileDebug(QFile* debugFile);
void initLrc(const QString& downloadUrl, ConnectivityMonitor* cm, bool logDaemon); void initLrc(const QString& downloadUrl, ConnectivityMonitor* cm, bool logDaemon);
void parseArguments(); void parseArguments();
void setApplicationFont(); void setApplicationFont();
...@@ -111,7 +109,6 @@ private: ...@@ -111,7 +109,6 @@ private:
private: private:
std::map<Option, QVariant> runOptions_; std::map<Option, QVariant> runOptions_;
QScopedPointer<QFile> debugFile_;
QScopedPointer<QQmlApplicationEngine> engine_; QScopedPointer<QQmlApplicationEngine> engine_;
QScopedPointer<LRCInstance> lrcInstance_; QScopedPointer<LRCInstance> lrcInstance_;
......
...@@ -863,6 +863,14 @@ Utils::humanFileSize(qint64 fileSize) ...@@ -863,6 +863,14 @@ Utils::humanFileSize(qint64 fileSize)
return QString::number(fileSizeF) + " " + units[unit_position]; return QString::number(fileSizeF) + " " + units[unit_position];
} }
QString
Utils::getDebugFilePath()
{
QDir logPath(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation));
logPath.cdUp();
return QString(logPath.absolutePath() + "/jami/jami.log");
}
bool bool
Utils::isImage(const QString& fileExt) Utils::isImage(const QString& fileExt)
{ {
......
...@@ -118,5 +118,6 @@ QString generateUid(); ...@@ -118,5 +118,6 @@ QString generateUid();
// Misc // Misc
QString humanFileSize(qint64 fileSize); QString humanFileSize(qint64 fileSize);
QString getDebugFilePath();
} // namespace Utils } // namespace Utils
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment