Skip to content

Commit b2ba271

Browse files
pcaspersjenkins
authored andcommitted
Merge remote-tracking branch 'origin/master' into QPR-12014
2 parents d3f01d6 + 9389a1b commit b2ba271

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

OREData/ored/utilities/log.cpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,17 +199,18 @@ StructuredLogger::StructuredLogger() : IndependentLogger(name) {
199199
std::find(this->messages().begin(), this->messages().end(), msg) == this->messages().end()) {
200200
// Store the message
201201
this->messages().push_back(msg);
202-
202+
203+
oreSeverity logSeverity = boost::log::extract<oreSeverity>(severity.get_name(), rec).get();
203204
// If a file sink has been defined, then send the log record to it.
204205
if (this->fileSink()) {
205206
// Send to structured log file
206207
lsrc::severity_logger_mt<oreSeverity> lg;
207208
lg.add_attribute(messageType.get_name(), lattr::constant<string>(name));
208-
BOOST_LOG_SEV(lg, oreSeverity::warning) << rec[lexpr::smessage];
209+
BOOST_LOG_SEV(lg, logSeverity) << rec[lexpr::smessage];
209210
}
210211

211212
// Also send to full log file
212-
MLOG(oreSeverity::warning, StructuredMessage::name << " " << rec[lexpr::smessage]);
213+
MLOG(logSeverity, StructuredMessage::name << " " << rec[lexpr::smessage]);
213214
}
214215
};
215216
sink->set_formatter(formatter);
@@ -564,7 +565,19 @@ StructuredMessage::StructuredMessage(const Category& category, const Group& grou
564565
void StructuredMessage::log() const {
565566
lsrc::severity_logger_mt<oreSeverity> lg;
566567
lg.add_attribute(messageType.get_name(), lattr::constant<string>(name));
567-
BOOST_LOG_SEV(lg, oreSeverity::alert) << json();
568+
569+
auto it = data_.find("category");
570+
QL_REQUIRE(it != data_.end(), "StructuredMessage must have a 'category' key specified.");
571+
QL_REQUIRE(it->second.type() == typeid(string), "StructuredMessage category must be a string.");
572+
573+
string category = boost::any_cast<string>(it->second);
574+
if (category == to_string(StructuredMessage::Category::Unknown) || category == to_string(StructuredMessage::Category::Warning)) {
575+
BOOST_LOG_SEV(lg, oreSeverity::warning) << json();
576+
} else if (category == to_string(StructuredMessage::Category::Error)) {
577+
BOOST_LOG_SEV(lg, oreSeverity::alert) << json();
578+
} else {
579+
QL_FAIL("StructuredMessage::log() invalid category '" << category << "'");
580+
}
568581
}
569582

570583
void StructuredMessage::addSubFields(const map<string, string>& subFields) {

0 commit comments

Comments
 (0)