diff --git a/opm/common/OpmLog/LogBackend.cpp b/opm/common/OpmLog/LogBackend.cpp
index ab8b74ea1..f12220bdb 100644
--- a/opm/common/OpmLog/LogBackend.cpp
+++ b/opm/common/OpmLog/LogBackend.cpp
@@ -17,8 +17,8 @@
along with OPM. If not, see .
*/
-#include
#include
+#include
namespace Opm {
@@ -31,17 +31,33 @@ namespace Opm {
{
}
- bool LogBackend::includeMessage(int64_t messageFlag) {
- if (((messageFlag & m_mask) == messageFlag) &&
- (messageFlag > 0))
- return true;
- else
- return false;
+ void LogBackend::configureDecoration(bool use_prefix, bool use_color_coding)
+ {
+ use_prefix_ = use_prefix;
+ use_color_coding_ = use_color_coding;
}
- int64_t LogBackend::getMask() const {
+ int64_t LogBackend::getMask() const
+ {
return m_mask;
}
+ bool LogBackend::includeMessage(int64_t messageFlag)
+ {
+ return ((messageFlag & m_mask) == messageFlag) && (messageFlag > 0);
+ }
+
+ std::string LogBackend::decorateMessage(int64_t messageFlag, const std::string& message)
+ {
+ std::string msg = message;
+ if (use_prefix_) {
+ msg = Log::prefixMessage(messageFlag, msg);
+ }
+ if (use_color_coding_) {
+ msg = Log::colorCodeMessage(messageFlag, msg);
+ }
+ return msg;
+ }
+
}
diff --git a/opm/common/OpmLog/LogBackend.hpp b/opm/common/OpmLog/LogBackend.hpp
index 3113392f9..db3ab2331 100644
--- a/opm/common/OpmLog/LogBackend.hpp
+++ b/opm/common/OpmLog/LogBackend.hpp
@@ -37,6 +37,9 @@ namespace Opm
/// Virtual destructor to enable inheritance.
virtual ~LogBackend();
+ /// Configure how decorateMessage() will modify message strings.
+ void configureDecoration(bool use_prefix, bool use_color_coding);
+
/// Add a message to the backend.
///
/// Typically a subclass may filter, change, and output
@@ -49,10 +52,15 @@ namespace Opm
protected:
/// Return true if all bits of messageFlag are also set in our mask.
- bool includeMessage(int64_t messageFlag);
+ bool includeMessage(int64_t messageFlag);
+
+ /// Return decorated version of message depending on configureDecoration() arguments.
+ std::string decorateMessage(int64_t messageFlag, const std::string& message);
private:
int64_t m_mask;
+ bool use_prefix_ = false;
+ bool use_color_coding_ = false;
};
} // namespace LogBackend