[dss-commits] r8812 - in dss/trunk: . core
dss-commits at forum.digitalstrom.org
dss-commits at forum.digitalstrom.org
Mon Oct 5 12:49:32 CEST 2009
Author: jwinkelmann
Date: 2009-10-05 12:49:32 +0200 (Mon, 05 Oct 2009)
New Revision: 8812
Modified:
dss/trunk/core/dss.cpp
dss/trunk/core/dss.h
dss/trunk/core/logger.cpp
dss/trunk/core/logger.h
dss/trunk/main.cpp
Log:
logging: reopen log file on SIGUSR1. Closes #70
Modified: dss/trunk/core/dss.cpp
===================================================================
--- dss/trunk/core/dss.cpp 2009-10-01 10:14:01 UTC (rev 8811)
+++ dss/trunk/core/dss.cpp 2009-10-05 10:49:32 UTC (rev 8812)
@@ -56,6 +56,10 @@
#include <string>
#include <sstream>
+#ifndef WIN32
+#include <csignal>
+#endif
+
using namespace std;
namespace dss {
@@ -303,4 +307,20 @@
return ostr.str();
}
+#ifndef WIN32
+ void DSS::handleSignal(int _signum) {
+ switch (_signum) {
+ case SIGUSR1: {
+ Logger::getInstance()->reopenLogTarget();
+ break;
+ }
+ default: {
+ std::ostringstream ostr;
+ ostr << "DSS::handleSignal(): unhandled signal " << _signum << endl;
+ Logger::getInstance()->log(ostr.str(), lsWarning);
+ break;
+ }
+ }
+ }
+#endif
}
Modified: dss/trunk/core/dss.h
===================================================================
--- dss/trunk/core/dss.h 2009-10-01 10:14:01 UTC (rev 8811)
+++ dss/trunk/core/dss.h 2009-10-05 10:49:32 UTC (rev 8812)
@@ -103,6 +103,10 @@
static void teardown();
#endif
static std::string versionString();
+
+#ifndef WIN32
+ static void handleSignal(int signum);
+#endif
aDSSState getState() const { return m_State; }
Modified: dss/trunk/core/logger.cpp
===================================================================
--- dss/trunk/core/logger.cpp 2009-10-01 10:14:01 UTC (rev 8811)
+++ dss/trunk/core/logger.cpp 2009-10-05 10:49:32 UTC (rev 8812)
@@ -133,5 +133,9 @@
return false;
} // setLogTarget
+ bool Logger::reopenLogTarget() {
+ m_logTarget->close();
+ return m_logTarget->open();
+ }
}
Modified: dss/trunk/core/logger.h
===================================================================
--- dss/trunk/core/logger.h 2009-10-01 10:14:01 UTC (rev 8811)
+++ dss/trunk/core/logger.h 2009-10-05 10:49:32 UTC (rev 8812)
@@ -52,6 +52,7 @@
void log(const LogChannel& _channel, const std::string& _message, const aLogSeverity _severity = lsDebug);
bool setLogTarget(boost::shared_ptr<LogTarget>& _logTarget);
+ bool reopenLogTarget();
private:
Logger();
Modified: dss/trunk/main.cpp
===================================================================
--- dss/trunk/main.cpp 2009-10-01 10:14:01 UTC (rev 8811)
+++ dss/trunk/main.cpp 2009-10-05 10:49:32 UTC (rev 8812)
@@ -80,6 +80,7 @@
srand((getpid() << 16) ^ getuid() ^ time(0));
// disable broken pipe signal
signal(SIGPIPE, SIG_IGN);
+ signal(SIGUSR1, dss::DSS::handleSignal);
#else
srand( (int)time( (time_t)NULL ) );
WSAData dat;
More information about the dss-commits
mailing list