Implement validation for the Logger#severity attribute

fixes #11646
This commit is contained in:
Gunnar Beutner 2016-04-21 13:50:47 +02:00
parent 5af437b5bb
commit 2d55cf1341
2 changed files with 14 additions and 5 deletions

View File

@ -156,7 +156,6 @@ String Logger::SeverityToString(LogSeverity severity)
case LogCritical:
return "critical";
default:
Log(LogCritical, "Logger", "Invalid severity.");
BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid severity."));
}
}
@ -178,11 +177,8 @@ LogSeverity Logger::StringToSeverity(const String& severity)
return LogWarning;
else if (severity == "critical")
return LogCritical;
else {
Log(LogCritical, "Logger")
<< "Invalid severity: '" << severity << "'.";
else
BOOST_THROW_EXCEPTION(std::invalid_argument("Invalid severity: " + severity));
}
}
void Logger::DisableConsoleLog(void)
@ -219,3 +215,14 @@ bool Logger::IsTimestampEnabled(void)
{
return m_TimestampEnabled;
}
void Logger::ValidateSeverity(const String& value, const ValidationUtils& utils)
{
ObjectImpl<Logger>::ValidateSeverity(value, utils);
try {
StringToSeverity(value);
} catch (...) {
BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("severity"), "Invalid severity specified: " + value));
}
}

View File

@ -92,6 +92,8 @@ public:
static void StaticInitialize(void);
virtual void ValidateSeverity(const String& value, const ValidationUtils& utils) override;
protected:
virtual void Start(bool runtimeCreated) override;
virtual void Stop(bool runtimeRemoved) override;