]> granicus.if.org Git - icinga2/commitdiff
Implement validation for the Logger#severity attribute
authorGunnar Beutner <gunnar.beutner@netways.de>
Thu, 21 Apr 2016 11:50:47 +0000 (13:50 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Thu, 21 Apr 2016 11:50:47 +0000 (13:50 +0200)
fixes #11646

lib/base/logger.cpp
lib/base/logger.hpp

index 3aa14c1a824e72b01f30fb439a94e2b829ae1f3d..d4a2048556c4a3d0385bc369b6db88bb82d5502b 100644 (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));
+       }
+}
index 2a77d0fbafc7a3ea065c23f3a3d8c8e386c20b5c..36e727d0e7800a2519d89796000221fbb9734280 100644 (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;