summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swift/QtUI/QtSwift.cpp6
-rw-r--r--Swiften/Base/Log.cpp13
-rw-r--r--Swiften/Base/Log.h20
-rw-r--r--Swiften/Base/SConscript1
4 files changed, 40 insertions, 0 deletions
diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp
index 77860d5..f33706a 100644
--- a/Swift/QtUI/QtSwift.cpp
+++ b/Swift/QtUI/QtSwift.cpp
@@ -23,6 +23,7 @@
#include <boost/bind.hpp>
#include <QSplitter>
+#include <Swiften/Base/Log.h>
#include "SwifTools/Application/PlatformApplicationPathProvider.h"
#include "Swiften/Avatars/AvatarFileStorage.h"
#include "Swiften/Disco/CapsFileStorage.h"
@@ -63,6 +64,7 @@ namespace Swift{
po::options_description QtSwift::getOptionsDescription() {
po::options_description result("Options");
result.add_options()
+ ("debug", "Turn on debug logging")
("help", "produce help message")
("netbook-mode", "use netbook mode display")
("no-tabs", "don't manage chat windows in tabs")
@@ -92,6 +94,10 @@ QtSwift::QtSwift(po::variables_map options) : autoUpdater_(NULL) {
numberOfAccounts = 1;
}
+ if (options.count("debug")) {
+ Swift::logging = true;
+ }
+
tabs_ = options.count("no-tabs") && !(splitter_ > 0) ? NULL : new QtChatTabs();
settings_ = new QtSettingsProvider();
applicationPathProvider_ = new PlatformApplicationPathProvider(SWIFT_APPLICATION_NAME);
diff --git a/Swiften/Base/Log.cpp b/Swiften/Base/Log.cpp
new file mode 100644
index 0000000..2041013
--- /dev/null
+++ b/Swiften/Base/Log.cpp
@@ -0,0 +1,13 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#include "Swiften/Base/Log.h"
+
+namespace Swift {
+
+bool logging = false;
+
+}
diff --git a/Swiften/Base/Log.h b/Swiften/Base/Log.h
new file mode 100644
index 0000000..afcfe90
--- /dev/null
+++ b/Swiften/Base/Log.h
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2010 Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#pragma once
+
+#include "Swiften/Base/Platform.h"
+namespace Swift {
+ extern bool logging;
+}
+
+#ifndef SWIFTEN_PLATFORM_WINDOWS
+#define SWIFT_LOG(severity) \
+ if (!Swift::logging) {} else std::cerr << __FILE__ << ":" << __LINE__ << " " << __FUNCTION__ << ": "
+#else
+#define SWIFT_LOG(severity) \
+ if (!Swift::logging) {} else std::cerr
+#endif
diff --git a/Swiften/Base/SConscript b/Swiften/Base/SConscript
index fb58d34..9c7b8dc 100644
--- a/Swiften/Base/SConscript
+++ b/Swiften/Base/SConscript
@@ -3,6 +3,7 @@ Import("swiften_env")
objects = swiften_env.StaticObject([
"ByteArray.cpp",
"Error.cpp",
+ "Log.cpp",
"Paths.cpp",
"IDGenerator.cpp",
"String.cpp",