+#include "quassel.h"
+
+Logger::~Logger()
+{
+ log();
+}
+
+
+void Logger::log()
+{
+ if (_logLevel < Quassel::logLevel())
+ return;
+
+ switch (_logLevel) {
+ case Quassel::DebugLevel:
+ _buffer.prepend("Debug: ");
+ break;
+ case Quassel::InfoLevel:
+ _buffer.prepend("Info: ");
+ break;
+ case Quassel::WarningLevel:
+ _buffer.prepend("Warning: ");
+ break;
+ case Quassel::ErrorLevel:
+ _buffer.prepend("Error: ");
+ break;
+ default:
+ break;
+ }
+
+#ifdef HAVE_SYSLOG
+ if (Quassel::logToSyslog()) {
+ int prio;
+ switch (_logLevel) {
+ case Quassel::DebugLevel:
+ prio = LOG_DEBUG;
+ break;
+ case Quassel::InfoLevel:
+ prio = LOG_INFO;
+ break;
+ case Quassel::WarningLevel:
+ prio = LOG_WARNING;
+ break;
+ case Quassel::ErrorLevel:
+ prio = LOG_ERR;
+ break;
+ default:
+ prio = LOG_INFO;
+ break;
+ }
+ syslog(prio|LOG_USER, "%s", qPrintable(_buffer));
+ }
+#endif