From 56ae875861ab260b80a030f50c4aff9f9dc8fff0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 13:32:39 +0200 Subject: Adding upstream version 2.14.2. Signed-off-by: Daniel Baumann --- lib/compat/compatlogger.hpp | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 lib/compat/compatlogger.hpp (limited to 'lib/compat/compatlogger.hpp') diff --git a/lib/compat/compatlogger.hpp b/lib/compat/compatlogger.hpp new file mode 100644 index 0000000..9fb0b29 --- /dev/null +++ b/lib/compat/compatlogger.hpp @@ -0,0 +1,60 @@ +/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ + +#ifndef COMPATLOGGER_H +#define COMPATLOGGER_H + +#include "compat/compatlogger-ti.hpp" +#include "icinga/service.hpp" +#include "base/timer.hpp" +#include + +namespace icinga +{ + +/** + * An Icinga compat log writer. + * + * @ingroup compat + */ +class CompatLogger final : public ObjectImpl +{ +public: + DECLARE_OBJECT(CompatLogger); + DECLARE_OBJECTNAME(CompatLogger); + + static void StatsFunc(const Dictionary::Ptr& status, const Array::Ptr& perfdata); + + void ValidateRotationMethod(const Lazy& lvalue, const ValidationUtils& utils) override; + +protected: + void Start(bool runtimeCreated) override; + void Stop(bool runtimeRemoved) override; + +private: + void WriteLine(const String& line); + void Flush(); + + void CheckResultHandler(const Checkable::Ptr& service, const CheckResult::Ptr& cr); + void NotificationSentHandler(const Notification::Ptr& notification, const Checkable::Ptr& service, + const User::Ptr& user, NotificationType notification_type, CheckResult::Ptr const& cr, + const String& author, const String& comment_text, const String& command_name); + void FlappingChangedHandler(const Checkable::Ptr& checkable); + void EnableFlappingChangedHandler(const Checkable::Ptr& checkable); + void TriggerDowntimeHandler(const Downtime::Ptr& downtime); + void RemoveDowntimeHandler(const Downtime::Ptr& downtime); + void ExternalCommandHandler(const String& command, const std::vector& arguments); + void EventCommandHandler(const Checkable::Ptr& service); + + static String GetHostStateString(const Host::Ptr& host); + + Timer::Ptr m_RotationTimer; + void RotationTimerHandler(); + void ScheduleNextRotation(); + + std::ofstream m_OutputFile; + void ReopenFile(bool rotate); +}; + +} + +#endif /* COMPATLOGGER_H */ -- cgit v1.2.3