| 16 | ConsoleLogger::ConsoleLogger(Level level) : CommonLogger(level) {} |
| 17 | |
| 18 | void ConsoleLogger::do_log_string(const std::string &message) { |
| 19 | #ifndef __EMSCRIPTEN__ |
| 20 | std::lock_guard<std::mutex> lock(mutex); |
| 21 | #endif |
| 22 | bool changed_color = false; |
| 23 | |
| 24 | for (size_t char_pos = 0; char_pos < message.size(); ++char_pos) { |
| 25 | if (char_pos + 1 < message.size() && message[char_pos] == ILogger::COLOR_PREFIX) { |
| 26 | char_pos += 1; |
| 27 | Color color = static_cast<Color>(message[char_pos] - ILogger::COLOR_LETTER_DEFAULT); |
| 28 | std::cout << std::flush; |
| 29 | common::console::set_text_color(color); |
| 30 | changed_color = true; |
| 31 | } else { |
| 32 | std::cout << message[char_pos]; |
| 33 | } |
| 34 | } |
| 35 | |
| 36 | std::cout << std::flush; |
| 37 | if (changed_color) { |
| 38 | common::console::set_text_color(Color::Default); |
| 39 | } |
| 40 | } |
| 41 | } // namespace logging |
nothing calls this directly
no test coverage detected