diff --git a/lib/base/logger.cpp b/lib/base/logger.cpp index 3aa14c1a8..d4a204855 100644 --- a/lib/base/logger.cpp +++ b/lib/base/logger.cpp @@ -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::ValidateSeverity(value, utils); + + try { + StringToSeverity(value); + } catch (...) { + BOOST_THROW_EXCEPTION(ValidationError(this, boost::assign::list_of("severity"), "Invalid severity specified: " + value)); + } +} diff --git a/lib/base/logger.hpp b/lib/base/logger.hpp index 2a77d0fba..36e727d0e 100644 --- a/lib/base/logger.hpp +++ b/lib/base/logger.hpp @@ -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;