From 37d72351be2f02b90fec5bead671c48e47f418a5 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Sat, 2 Apr 2016 14:18:34 +0200 Subject: [PATCH] Fixed log file creation crash (#755) --- src/app/main.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index de3f8423..88908f6f 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -44,6 +44,7 @@ #include #include +#include /* Doxygen main page */ @@ -98,13 +99,19 @@ int main(int argc, char *argv[]) systemUtils->Init(); // Add file output to the logger - std::string logfile; + std::string logFileName; #if DEV_BUILD - logfile = "log.txt"; + logFileName = "log.txt"; #else - logfile = systemUtils->GetSaveDir() + "/log.txt"; + boost::filesystem::create_directories(systemUtils->GetSaveDir()); + logFileName = systemUtils->GetSaveDir() + "/log.txt"; #endif - logger.AddOutput(fopen(logfile.c_str(), "w")); + FILE* logFile = fopen(logFileName.c_str(), "w"); + if (logFile) + logger.AddOutput(logFile); + else + logger.Error("Failed to create log file, writing log to file disabled\n"); + // Workaround for character encoding in argv on Windows #if PLATFORM_WINDOWS