Logging: fix logging file paths 🐛

This commit is contained in:
mmbyday 2018-12-11 10:36:37 -08:00
parent 0f05127262
commit 125e1d4a19

View file

@ -2,32 +2,51 @@
#include <QStandardPaths> #include <QStandardPaths>
#include <QFileInfo> #include <QFileInfo>
#include <QString> #include <QString>
#include <QDir>
#include <QDebug>
#include "Logger.h" #include "Logger.h"
#include "wallet/api/wallet2_api.h" #include "wallet/api/wallet2_api.h"
// default log path by OS (should be writable) // default log path by OS (should be writable)
static const QString default_name = "monero-wallet-gui.log"; static const QString defaultLogName = "monero-wallet-gui.log";
#if defined(Q_OS_ANDROID) || defined(Q_OS_IOS) #if defined(Q_OS_IOS)
//AppDataLocation = "<APPROOT>/Library/Application Support"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0); static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0);
static const QString appFolder = "monero-wallet-gui";
#elif defined(Q_OS_WIN) #elif defined(Q_OS_WIN)
static const QString osPath = QCoreApplication::applicationDirPath(); //AppDataLocation = "C:/Users/<USER>/AppData/Roaming/<APPNAME>"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(0);
static const QString appFolder = "monero-wallet-gui";
#elif defined(Q_OS_ANDROID)
//AppDataLocation = "<USER>/<APPNAME>/files"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).at(1);
static const QString appFolder = "";
#elif defined(Q_OS_MAC) #elif defined(Q_OS_MAC)
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0) + "/Library/Logs"; //HomeLocation = "~"
#else // linux + bsd
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0); static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
static const QString appFolder = "Library/Logs";
#else // linux + bsd
//HomeLocation = "~"
static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
static const QString appFolder = ".bitmonero";
#endif #endif
// return the absolute path of the logfile // return the absolute path of the logfile and ensure path folder exists
const QString getLogPath(const QString logPath) const QString getLogPath(const QString logPath)
{ {
const QFileInfo fi(logPath); const QFileInfo fi(logPath);
if(!logPath.isEmpty() && !fi.isDir()) if(!logPath.isEmpty() && !fi.isDir())
return fi.absoluteFilePath(); return fi.absoluteFilePath();
else else {
return osPath + "/" + default_name; QDir appDir(osPath + "/" + appFolder);
if(!appDir.exists())
if(!appDir.mkpath("."))
qWarning() << "Logger: Cannot create log directory " + appDir.path();
return appDir.path() + "/" + defaultLogName;
}
} }