Skip to content

Commit

Permalink
Move stuff from Logger.hpp to Logger.cpp
Browse files Browse the repository at this point in the history
- I do not need the Foreground or Background functions elsewhere
  • Loading branch information
visuve committed Apr 5, 2024
1 parent 6dfa99c commit 1b6c4a4
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 71 deletions.
76 changes: 75 additions & 1 deletion HackLib/Logger.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,60 @@
#include "Logger.hpp"

std::mutex LogMutex;
namespace
{
constexpr std::string_view Foreground(Logger::Color c)
{
switch (c)
{
case Logger::Color::Black: return "\033[30m";
case Logger::Color::Red: return "\033[31m";
case Logger::Color::Green: return "\033[32m";
case Logger::Color::Yellow: return "\033[33m";
case Logger::Color::Blue: return "\033[34m";
case Logger::Color::Magenta: return "\033[35m";
case Logger::Color::Cyan: return "\033[36m";
case Logger::Color::LightGray: return "\033[37m";
case Logger::Color::DarkGray: return "\033[90m";
case Logger::Color::LightRed: return "\033[91m";
case Logger::Color::LightGreen: return "\033[92m";
case Logger::Color::LightYellow: return "\033[93m";
case Logger::Color::LightBlue: return "\033[94m";
case Logger::Color::LightMagenta: return "\033[95m";
case Logger::Color::LightCyan: return "\033[96m";
case Logger::Color::White: return "\033[97m";
case Logger::Color::Default: return "\033[0m";
}

throw ArgumentException("Unknown foreground color");
}

constexpr std::string_view Background(Logger::Color c)
{
switch (c)
{
case Logger::Color::Black: return "\033[40m";
case Logger::Color::Red: return "\033[41m";
case Logger::Color::Green: return "\033[42m";
case Logger::Color::Yellow: return "\033[43m";
case Logger::Color::Blue: return "\033[44m";
case Logger::Color::Magenta: return "\033[45m";
case Logger::Color::Cyan: return "\033[46m";
case Logger::Color::LightGray: return "\033[47m";
case Logger::Color::DarkGray: return "\033[100m";
case Logger::Color::LightRed: return "\033[101m";
case Logger::Color::LightGreen: return "\033[102m";
case Logger::Color::LightYellow: return "\033[103m";
case Logger::Color::LightBlue: return "\033[104m";
case Logger::Color::LightMagenta: return "\033[105m";
case Logger::Color::LightCyan: return "\033[106m";
case Logger::Color::White: return "\033[107m";
}

throw ArgumentException("Unknown background color");
}

std::mutex LogMutex;
}

std::string Prefix(const std::source_location& location)
{
Expand Down Expand Up @@ -50,6 +104,26 @@ Logger::~Logger()
}
}

Logger& Logger::operator << (Color c)
{
if (_stream && _isConsoleOutput)
{
_modifiers.emplace_back(Foreground(c), Foreground(_color));
}

return *this;
}

Logger& Logger::operator << (Modifier m)
{
if (_stream && m == Logger::Modifier::Quoted)
{
_modifiers.emplace_back("\"", "\"");
}

return *this;
}

DurationLogger::DurationLogger(std::ostream& stream, const std::source_location& location, const std::string& message) :
Logger(stream, location, Logger::Color::Magenta),
_start(std::chrono::high_resolution_clock::now())
Expand Down
72 changes: 2 additions & 70 deletions HackLib/Logger.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,25 +38,8 @@ class Logger

NonCopyable(Logger);

Logger& operator << (Color c)
{
if (_stream && _isConsoleOutput)
{
_modifiers.emplace_back(Foreground(c), Foreground(_color));
}

return *this;
}

Logger& operator << (Modifier m)
{
if (_stream && m == Logger::Modifier::Quoted)
{
_modifiers.emplace_back("\"", "\"");
}

return *this;
}
Logger& operator << (Color c);
Logger& operator << (Modifier m);

Logger& operator << (auto x)
{
Expand All @@ -82,57 +65,6 @@ class Logger
return *this;
}

static constexpr std::string_view Foreground(Color c)
{
switch (c)
{
case Color::Black: return "\033[30m";
case Color::Red: return "\033[31m";
case Color::Green: return "\033[32m";
case Color::Yellow: return "\033[33m";
case Color::Blue: return "\033[34m";
case Color::Magenta: return "\033[35m";
case Color::Cyan: return "\033[36m";
case Color::LightGray: return "\033[37m";
case Color::DarkGray: return "\033[90m";
case Color::LightRed: return "\033[91m";
case Color::LightGreen: return "\033[92m";
case Color::LightYellow: return "\033[93m";
case Color::LightBlue: return "\033[94m";
case Color::LightMagenta: return "\033[95m";
case Color::LightCyan: return "\033[96m";
case Color::White: return "\033[97m";
case Color::Default: return "\033[0m";
}

throw ArgumentException("Unknown foreground color");
}

static constexpr std::string_view Background(Color c)
{
switch (c)
{
case Color::Black: return "\033[40m";
case Color::Red: return "\033[41m";
case Color::Green: return "\033[42m";
case Color::Yellow: return "\033[43m";
case Color::Blue: return "\033[44m";
case Color::Magenta: return "\033[45m";
case Color::Cyan: return "\033[46m";
case Color::LightGray: return "\033[47m";
case Color::DarkGray: return "\033[100m";
case Color::LightRed: return "\033[101m";
case Color::LightGreen: return "\033[102m";
case Color::LightYellow: return "\033[103m";
case Color::LightBlue: return "\033[104m";
case Color::LightMagenta: return "\033[105m";
case Color::LightCyan: return "\033[106m";
case Color::White: return "\033[107m";
}

throw ArgumentException("Unknown background color");
}

template <typename T>
constexpr void Plain(std::string_view name, T value)
{
Expand Down

0 comments on commit 1b6c4a4

Please sign in to comment.