From 3f38e780f444e7042b4cf4b5a8bbbe5eb0e7ca6e Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Wed, 4 Feb 2015 12:48:08 +0100 Subject: [PATCH] Fix #674 --- servatrice/src/server_logger.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/servatrice/src/server_logger.cpp b/servatrice/src/server_logger.cpp index 4896852a..8d615e1d 100644 --- a/servatrice/src/server_logger.cpp +++ b/servatrice/src/server_logger.cpp @@ -2,6 +2,8 @@ #include "settingscache.h" #include #include +#include +#include #include #include #include @@ -26,8 +28,23 @@ ServerLogger::~ServerLogger() void ServerLogger::startLog(const QString &logFileName) { if (!logFileName.isEmpty()) { + QFileInfo fi(logFileName); + QDir fileDir(fi.path()); + if (!fileDir.exists() && !fileDir.mkpath(fileDir.absolutePath())) { + std::cerr << "ERROR: logfile folder doesn't exist and i can't create it." << std::endl; + logFile = 0; + return; + } + + logFile = new QFile(logFileName, this); - logFile->open(QIODevice::Append); + if(!logFile->open(QIODevice::Append)) { + std::cerr << "ERROR: can't open() logfile." << std::endl; + delete logFile; + logFile = 0; + return; + } + #ifdef Q_OS_UNIX ::socketpair(AF_UNIX, SOCK_STREAM, 0, sigHupFD);