Index: code/branches/buildsystem3/src/util/OutputBuffer.cc
===================================================================
--- code/branches/buildsystem3/src/util/OutputBuffer.cc	(revision 2664)
+++ code/branches/buildsystem3/src/util/OutputBuffer.cc	(revision 2685)
@@ -68,7 +68,7 @@
     OutputBuffer& OutputBuffer::operator<<(std::ostream& (*manipulator)(std::ostream&))
     {
-                this->stream_ << manipulator;
-                this->callListeners();
-                return *this;
+        this->stream_ << manipulator;
+        this->callListeners();
+        return *this;
     }
 
@@ -79,7 +79,7 @@
     OutputBuffer& OutputBuffer::operator<<(std::ios& (*manipulator)(std::ios&))
     {
-                this->stream_ << manipulator;
-                this->callListeners();
-                return *this;
+        this->stream_ << manipulator;
+        this->callListeners();
+        return *this;
     }
 
@@ -90,7 +90,7 @@
     OutputBuffer& OutputBuffer::operator<<(std::ios_base& (*manipulator)(std::ios_base&))
     {
-                this->stream_ << manipulator;
-                this->callListeners();
-                return *this;
+        this->stream_ << manipulator;
+        this->callListeners();
+        return *this;
     }
 
Index: code/branches/buildsystem3/src/util/OutputHandler.cc
===================================================================
--- code/branches/buildsystem3/src/util/OutputHandler.cc	(revision 2664)
+++ code/branches/buildsystem3/src/util/OutputHandler.cc	(revision 2685)
@@ -33,5 +33,7 @@
 
 #include "OutputHandler.h"
-#include <time.h>
+
+#include <ctime>
+#include <cstdlib>
 
 namespace orxonox
@@ -41,9 +43,21 @@
         @param logfilename The name of the logfile
     */
-    OutputHandler::OutputHandler(const std::string& logfilename)
-    {
+    OutputHandler::OutputHandler()
+    {
+#ifdef ORXONOX_PLATFORM_WINDOWS
+        char* pTempDir = getenv("TEMP");
+        this->logfilename_ = std::string(pTempDir) + "/orxonox.log";
+#else
+        this->logfilename_ = "/tmp/orxonox.log";
+#endif
+#ifdef NDEBUG
+        this->softDebugLevel_[LD_All] = this->softDebugLevel_[LD_Logfile] = 2;
+        this->softDebugLevel_[LD_Console] = this->softDebugLevel_[LD_Shell] = 1;
+#else
+        this->softDebugLevel_[LD_All] = this->softDebugLevel_[LD_Logfile] = 3;
+        this->softDebugLevel_[LD_Console] = this->softDebugLevel_[LD_Shell] = 2;
+#endif
+
         this->outputBuffer_ = &this->fallbackBuffer_;
-        this->softDebugLevel_[0] = this->softDebugLevel_[1] = this->softDebugLevel_[2] = this->softDebugLevel_[3] = 2;
-        this->logfilename_ = logfilename;
         this->logfile_.open(this->logfilename_.c_str(), std::fstream::out);
 
@@ -53,5 +67,5 @@
         timeinfo = localtime(&rawtime);
 
-        this->logfile_ << "Started log at " << asctime(timeinfo) << std::endl;
+        this->logfile_ << "Started log on " << asctime(timeinfo) << std::endl;
         this->logfile_.flush();
     }
@@ -72,5 +86,5 @@
     OutputHandler& OutputHandler::getOutStream()
     {
-        static OutputHandler orxout("orxonox.log");
+        static OutputHandler orxout;
         return orxout;
     }
@@ -112,4 +126,21 @@
 
     /**
+        @brief Sets the path where to create orxonox.log
+        @param Path string with trailing slash
+    */
+    void OutputHandler::setLogPath(const std::string& path)
+    {
+        OutputHandler::getOutStream().logfile_.close();
+        // store old content
+        std::ifstream old;
+        old.open(OutputHandler::getOutStream().logfilename_.c_str());
+        OutputHandler::getOutStream().logfilename_ = path + "orxonox.log";
+        OutputHandler::getOutStream().logfile_.open(OutputHandler::getOutStream().logfilename_.c_str(), std::fstream::out);
+        OutputHandler::getOutStream().logfile_ << old.rdbuf();
+        old.close();
+        OutputHandler::getOutStream().logfile_.flush();
+    }
+
+    /**
         @brief Overloaded << operator, redirects the output to the console and the logfile.
         @param sb The streambuffer that should be shown in the console
Index: code/branches/buildsystem3/src/util/OutputHandler.h
===================================================================
--- code/branches/buildsystem3/src/util/OutputHandler.h	(revision 2664)
+++ code/branches/buildsystem3/src/util/OutputHandler.h	(revision 2685)
@@ -101,4 +101,6 @@
             static int getSoftDebugLevel(OutputHandler::OutputDevice device = OutputHandler::LD_All);
 
+            static void setLogPath(const std::string& path);
+
             void setOutputBuffer(OutputBuffer* buffer);
 
@@ -142,6 +144,6 @@
 
         private:
-            explicit OutputHandler(const std::string& logfilename);
-            OutputHandler(const OutputHandler& oh);  // don't copy
+            explicit OutputHandler();
+            OutputHandler(const OutputHandler& oh);
             virtual ~OutputHandler();
 
Index: code/branches/buildsystem3/src/util/SignalHandler.cc
===================================================================
--- code/branches/buildsystem3/src/util/SignalHandler.cc	(revision 2664)
+++ code/branches/buildsystem3/src/util/SignalHandler.cc	(revision 2685)
@@ -159,5 +159,5 @@
       }
 
-      COUT(0) << "recieved signal " << sigName.c_str() << std::endl << "try to write backtrace to file orxonox.log" << std::endl;
+      COUT(0) << "recieved signal " << sigName.c_str() << std::endl << "try to write backtrace to file orxonox_crash.log" << std::endl;
 
       int sigPipe[2];
