summaryrefslogtreecommitdiff
path: root/src/core/Logger.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-11-21 21:02:48 +0100
committerAndreas Stöckel <andreas@somweyr.de>2014-11-21 21:02:48 +0100
commite41852c7ec8cb95f47180005a38e6ff43c4549f9 (patch)
treeac7e906e0d30d0109170f31b3980bdb8737052ee /src/core/Logger.cpp
parent642ab72a555c6462d14f4abc698ff8ea13884e49 (diff)
working on Logger and Typesystem
Diffstat (limited to 'src/core/Logger.cpp')
-rw-r--r--src/core/Logger.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/core/Logger.cpp b/src/core/Logger.cpp
new file mode 100644
index 0000000..2317e70
--- /dev/null
+++ b/src/core/Logger.cpp
@@ -0,0 +1,69 @@
+/*
+ Ousía
+ Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+namespace ousia {
+
+static const int BLACK = 30;
+static const int RED = 31;
+static const int GREEN = 32;
+static const int YELLOW = 33;
+static const int BLUE = 34;
+static const int MAGENTA = 35;
+static const int CYAN = 36;
+static const int WHITE = 37;
+
+void StreamLogger::logMessage(const LogMessage &msg) {
+ os << '[';
+ switch (msg.severity) {
+ case Severity::DEBUG:
+ os << "debug" << os;
+ break;
+ case Severity::INFO:
+ os << "info" << os;
+ break;
+ case Severity::WARNING:
+ os << "warning" << os;
+ break;
+ case Severity::ERROR:
+ os << "error" << os;
+ break;
+ case Severity::FATAL_ERROR:
+ is << "fatal error" << os;
+ break;
+ }
+ os << ']';
+
+ // Print the file name
+ if (!msg.file.empty()) {
+ os << msg.file;
+
+ // Print the line and column
+ if (msg.line >= 0) {
+ os << ':' << msg.line;
+ if (msg.column >= 0) {
+ os << ':' << msg.column;
+ }
+ }
+ }
+
+ // Print the actual message
+ os << ' ' << msg.msg;
+}
+
+};
+