summaryrefslogtreecommitdiff
path: root/src/core/common/Logger.cpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-01 17:54:21 +0100
committerAndreas Stöckel <andreas@somweyr.de>2015-01-01 17:54:21 +0100
commit684ad34cfb8e14695b436975d7da46ca6691c979 (patch)
treeab2d24810072643084c6625cd8b5a78ce6c95e2e /src/core/common/Logger.cpp
parent3bb40fec9cea187d71498d9c785c1fd15985d165 (diff)
Moved Terminal class to own header (as Logger.cpp is quiet large now)
Diffstat (limited to 'src/core/common/Logger.cpp')
-rw-r--r--src/core/common/Logger.cpp116
1 files changed, 1 insertions, 115 deletions
diff --git a/src/core/common/Logger.cpp b/src/core/common/Logger.cpp
index 73ffef7..fa4b5c8 100644
--- a/src/core/common/Logger.cpp
+++ b/src/core/common/Logger.cpp
@@ -20,6 +20,7 @@
#include <sstream>
#include "Logger.hpp"
+#include "Terminal.hpp"
namespace ousia {
@@ -192,121 +193,6 @@ bool ConcreteLogger::hasError()
getSeverityCount(Severity::FATAL_ERROR) > 0;
}
-/* Class Terminal */
-
-/**
- * The Terminal class contains some helper functions used to interact with the
- * terminal as used for colorful output when logging error messages.
- *
- * TODO: Disable on Windows or use corresponding API-functions for setting the
- * color.
- */
-class Terminal {
-private:
- /**
- * If set to false, no control codes are generated.
- */
- bool active;
-
-public:
- /**
- * ANSI color code for black.
- */
- static const int BLACK = 30;
-
- /**
- * ANSI color code for red.
- */
- static const int RED = 31;
-
- /**
- * ANSI color code for green.
- */
- static const int GREEN = 32;
-
- /**
- * ANSI color code for yellow.
- */
- static const int YELLOW = 33;
-
- /**
- * ANSI color code for blue.
- */
- static const int BLUE = 34;
-
- /**
- * ANSI color code for magenta.
- */
- static const int MAGENTA = 35;
-
- /**
- * ANSI color code for cyan.
- */
- static const int CYAN = 36;
-
- /**
- * ANSI color code for white.
- */
- static const int WHITE = 37;
-
- /**
- * Creates a new instance of the Terminal class.
- *
- * @param active specifies whether color codes should be generated.
- */
- Terminal(bool active) : active(active) {}
-
- /**
- * Returns a control string for switching to the given color.
- *
- * @param color is the color the terminal should switch to.
- * @param bright specifies whether the terminal should switch to the bright
- * mode.
- * @return a control string to be included in the output stream.
- */
- std::string color(int color, bool bright = true) const
- {
- if (!active) {
- return std::string{};
- }
- std::stringstream ss;
- ss << "\x1b[";
- if (bright) {
- ss << "1;";
- }
- ss << color << "m";
- return ss.str();
- }
-
- /**
- * Returns a control string for switching to the bright mode.
- *
- * @return a control string to be included in the output stream.
- */
- std::string bright() const
- {
- if (!active) {
- return std::string{};
- }
- std::stringstream ss;
- ss << "\x1b[1m";
- return ss.str();
- }
-
- /**
- * Returns a control string for switching to the default mode.
- *
- * @return a control string to be included in the output stream.
- */
- std::string reset() const
- {
- if (!active) {
- return std::string{};
- }
- return "\x1b[0m";
- }
-};
-
/* Class TerminalLogger */
void TerminalLogger::processMessage(const Message &msg)