aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/barrier/win32/DaemonApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/barrier/win32/DaemonApp.cpp')
-rw-r--r--src/lib/barrier/win32/DaemonApp.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/lib/barrier/win32/DaemonApp.cpp b/src/lib/barrier/win32/DaemonApp.cpp
index 62fecf8..eafd893 100644
--- a/src/lib/barrier/win32/DaemonApp.cpp
+++ b/src/lib/barrier/win32/DaemonApp.cpp
@@ -33,6 +33,7 @@
#include "base/EventQueue.h"
#include "base/log_outputters.h"
#include "base/Log.h"
+#include "common/DataDirectories.h"
#include "arch/win32/ArchMiscWindows.h"
#include "arch/win32/XArchWindows.h"
@@ -41,6 +42,7 @@
#include "platform/MSWindowsDebugOutputter.h"
#include "platform/MSWindowsWatchdog.h"
#include "platform/MSWindowsEventQueueBuffer.h"
+#include "platform/MSWindowsUtil.h"
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
@@ -130,8 +132,10 @@ DaemonApp::run(int argc, char** argv)
}
if (foreground) {
- // run process in foreground instead of daemonizing.
- // useful for debugging.
+ // add a console to catch Ctrl+C and run process in foreground
+ // instead of daemonizing. useful for debugging.
+ if (IsDebuggerPresent())
+ AllocConsole();
mainLoop(false);
}
else {
@@ -239,14 +243,10 @@ DaemonApp::foregroundError(const char* message)
std::string
DaemonApp::logFilename()
{
- string logFilename;
- logFilename = ARCH->setting("LogFilename");
- if (logFilename.empty()) {
- logFilename = ARCH->getLogDirectory();
- logFilename.append("/");
- logFilename.append(LOG_FILENAME);
- }
-
+ string logFilename = ARCH->setting("LogFilename");
+ if (logFilename.empty())
+ logFilename = DataDirectories::global() + "\\" + LOG_FILENAME;
+ MSWindowsUtil::createDirectory(logFilename, true);
return logFilename;
}