diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-01 17:54:21 +0100 |
---|---|---|
committer | Andreas Stöckel <andreas@somweyr.de> | 2015-01-01 17:54:21 +0100 |
commit | 684ad34cfb8e14695b436975d7da46ca6691c979 (patch) | |
tree | ab2d24810072643084c6625cd8b5a78ce6c95e2e /src/core/common/Logger.cpp | |
parent | 3bb40fec9cea187d71498d9c785c1fd15985d165 (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.cpp | 116 |
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) |