aboutsummaryrefslogtreecommitdiff
path: root/Logger.cpp
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2018-05-11 16:57:43 -0500
committerluigi1111 <luigi1111w@gmail.com>2018-05-11 16:57:43 -0500
commit4c2640d4b3519cede86f4392c4e3a29d6ee5a377 (patch)
tree12ac129b7edb7a8252b7027af52ca3088c60796f /Logger.cpp
parentadc1db585a9e0f9dee5876bd91e832c654d10a67 (diff)
parent15155f2db8d20d09c68070f39d583fa263b7fe15 (diff)
downloadmonzero-gui-4c2640d4b3519cede86f4392c4e3a29d6ee5a377.tar.gz
monzero-gui-4c2640d4b3519cede86f4392c4e3a29d6ee5a377.tar.xz
monzero-gui-4c2640d4b3519cede86f4392c4e3a29d6ee5a377.zip
Merge pull request #1358
341ac18 log qt/qml to easylogging, add --log-file cmdline option 92582a9 delete unused WalletManager functions c9daab7 don't use cmdline arguments as daemon arguments 7283fe4 use qWarning/qCritical on QrCodeScanner info/errors 15155f2 print logs on console
Diffstat (limited to 'Logger.cpp')
-rw-r--r--Logger.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/Logger.cpp b/Logger.cpp
new file mode 100644
index 00000000..660bafcc
--- /dev/null
+++ b/Logger.cpp
@@ -0,0 +1,49 @@
+#include <QCoreApplication>
+#include <QStandardPaths>
+#include <QFileInfo>
+#include <QString>
+
+#include "Logger.h"
+#include "wallet/api/wallet2_api.h"
+
+// default log path by OS (should be writable)
+static const QString default_name = "monero-wallet-gui.log";
+#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS)
+ static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0);
+#elif defined(Q_OS_WIN)
+ static const QString osPath = QCoreApplication::applicationDirPath();
+#elif defined(Q_OS_MAC)
+ static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0) + "/Library/Logs";
+#else // linux + bsd
+ static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
+#endif
+
+
+// return the absolute path of the logfile
+const QString getLogPath(const QString logPath)
+{
+ const QFileInfo fi(logPath);
+
+ if(!logPath.isEmpty() && !fi.isDir())
+ return fi.absoluteFilePath();
+ else
+ return osPath + "/" + default_name;
+}
+
+
+// custom messageHandler that foward all messages to easylogging
+void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &message)
+{
+ (void) context; // context isn't used in release builds
+ const std::string cat = "frontend"; // category displayed in the log
+ const std::string msg = message.toStdString();
+ switch(type)
+ {
+ case QtDebugMsg: Monero::Wallet::debug(cat, msg); break;
+ case QtInfoMsg: Monero::Wallet::info(cat, msg); break;
+ case QtWarningMsg: Monero::Wallet::warning(cat, msg); break;
+ case QtCriticalMsg: Monero::Wallet::error(cat, msg); break;
+ case QtFatalMsg: Monero::Wallet::error(cat, msg); break;
+ }
+}
+