easylogging++: always omit ANSI codes when colour is not supported

This commit is contained in:
moneromooo-monero 2019-09-16 13:02:13 +00:00
parent 3f6096867d
commit 6d378d90fe
No known key found for this signature in database
GPG key ID: 686F07454D6CEFC3
2 changed files with 9 additions and 3 deletions

View file

@ -684,6 +684,11 @@ void LogBuilder::convertToColoredOutput(base::type::string_t* logLine, Level lev
} }
} }
void LogBuilder::setColor(Color color, bool bright) {
if (m_termSupportsColor)
el::base::utils::setConsoleColor(color, bright);
}
// Logger // Logger
Logger::Logger(const std::string& id, base::LogStreamsReferenceMap* logStreamsReference) : Logger::Logger(const std::string& id, base::LogStreamsReferenceMap* logStreamsReference) :
@ -2485,11 +2490,11 @@ void DefaultLogDispatchCallback::dispatch(base::type::string_t&& rawLinePrefix,
if (m_data->logMessage()->logger()->m_typedConfigurations->toStandardOutput(m_data->logMessage()->level())) { if (m_data->logMessage()->logger()->m_typedConfigurations->toStandardOutput(m_data->logMessage()->level())) {
const el::Level level = m_data->logMessage()->level(); const el::Level level = m_data->logMessage()->level();
const el::Color color = m_data->logMessage()->color(); const el::Color color = m_data->logMessage()->color();
el::base::utils::setConsoleColor(el::base::utils::colorFromLevel(level), false); m_data->logMessage()->logger()->logBuilder()->setColor(el::base::utils::colorFromLevel(level), false);
ELPP_COUT << rawLinePrefix; ELPP_COUT << rawLinePrefix;
el::base::utils::setConsoleColor(color == el::Color::Default ? el::base::utils::colorFromLevel(level): color, color != el::Color::Default); m_data->logMessage()->logger()->logBuilder()->setColor(color == el::Color::Default ? el::base::utils::colorFromLevel(level): color, color != el::Color::Default);
ELPP_COUT << rawLinePayload; ELPP_COUT << rawLinePayload;
el::base::utils::setConsoleColor(el::Color::Default, false); m_data->logMessage()->logger()->logBuilder()->setColor(el::Color::Default, false);
ELPP_COUT << std::flush; ELPP_COUT << std::flush;
} }
} }

View file

@ -2235,6 +2235,7 @@ class LogBuilder : base::NoCopy {
} }
virtual base::type::string_t build(const LogMessage* logMessage, bool appendNewLine) const = 0; virtual base::type::string_t build(const LogMessage* logMessage, bool appendNewLine) const = 0;
void convertToColoredOutput(base::type::string_t* logLine, Level level, Color color); void convertToColoredOutput(base::type::string_t* logLine, Level level, Color color);
void setColor(Color color, bool bright);
private: private:
bool m_termSupportsColor; bool m_termSupportsColor;
friend class el::base::DefaultLogDispatchCallback; friend class el::base::DefaultLogDispatchCallback;