#include <lib/base/eerror.h>
#include <lib/base/elock.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
+#include <cstdarg>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
#include <unistd.h>
#include <string>
};
#endif
+SigC::Connection logConnection;
Signal2<void, int, const std::string&> logOutput;
int logOutputConsole=1;
static pthread_mutex_t DebugLock =
PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
-extern void bsodFatal();
+extern void bsodFatal(const char *component);
void eFatal(const char* fmt, ...)
{
logOutput(lvlFatal, "FATAL: " + std::string(buf) + "\n");
fprintf(stderr, "FATAL: %s\n",buf );
}
- bsodFatal();
+ bsodFatal("enigma2");
}
#ifdef DEBUG
va_start(ap, fmt);
vsnprintf(buf, 1024, fmt, ap);
va_end(ap);
- singleLock s(DebugLock);
- logOutput(lvlDebug, std::string(buf) + "\n");
+ if (logConnection.connected()) {
+ singleLock s(DebugLock);
+ logOutput(lvlDebug, std::string(buf) + "\n");
+ }
if (logOutputConsole)
fprintf(stderr, "%s\n", buf);
}
va_start(ap, fmt);
vsnprintf(buf, 1024, fmt, ap);
va_end(ap);
- singleLock s(DebugLock);
- logOutput(lvlDebug, buf);
+ if (logConnection.connected()) {
+ singleLock s(DebugLock);
+ logOutput(lvlDebug, buf);
+ }
if (logOutputConsole)
fprintf(stderr, "%s", buf);
}
va_start(ap, fmt);
vsnprintf(buf, 1024, fmt, ap);
va_end(ap);
- singleLock s(DebugLock);
- logOutput(lvlWarning, std::string(buf) + "\n");
+ if (logConnection.connected()) {
+ singleLock s(DebugLock);
+ logOutput(lvlWarning, std::string(buf) + "\n");
+ }
if (logOutputConsole)
fprintf(stderr, "%s\n", buf);
}
void ePythonOutput(const char *string)
{
#ifdef DEBUG
- singleLock s(DebugLock);
- logOutput(lvlWarning, string);
+ if (logConnection.connected()) {
+ singleLock s(DebugLock);
+ logOutput(lvlWarning, string);
+ }
if (logOutputConsole)
fwrite(string, 1, strlen(string), stderr);
#endif