Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
AppFailuresLoggerManager.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_ALARMS_APPFAILURESLOGGERMANAGER_HPP_
2#define IV_SRC_ALARMS_APPFAILURESLOGGERMANAGER_HPP_
3
5#include "core/defines.hpp"
6#include "diamar/structs.hpp"
7#include "logs/enums.hpp"
8
9#include <map>
10#include <utility>
11
12namespace iv::diamar
13{
14
16{
17 explicit AppFailure(iv::types::appFailureId id_, const std::string_view source_,
18 const std::string_view description_, const iv::logs::eSystemFailureLogLevel level_,
20 : id(std::move(id_)), source(source_), description(description_), level(level_), category(category_),
21 timestamp(timestamp_), counts(1) {};
22
24 std::string source;
25 std::string description;
29 uint64_t counts;
30};
31
33{
34public:
36
37 void logCommFailure(const iv::types::networkId &networkId, std::string_view specificCommId,
38 std::string_view failureDescription, iv::logs::eSystemFailureLogLevel level);
39 void logThreadFailure(const iv::types::threadName &threadName, std::string_view specificThreadId,
40 std::string_view failureDescription, iv::logs::eSystemFailureLogLevel level);
41
42 void logAppFailure(iv::logs::eSystemFailureCategory category, std::string_view specificCommId,
43 std::string_view failureSource, std::string_view failureDescription,
45 bool removeAppFailure(const iv::types::appFailureId &failureId);
46
47 std::weak_ptr<iv::diamar::AppFailure> getAppFailure(const iv::types::appFailureId &failureId) const;
49 std::optional<iv::logs::eSystemFailureLogLevel> criticalLevelSinceLastCheck(bool resetCriticalLevel = false);
50
52
53 [[nodiscard]] std::map<iv::types::appFailureId, std::shared_ptr<iv::diamar::AppFailure>> appFailures() const;
54
55private:
56 void addOrUpdateAppFailure(const iv::diamar::AppFailure &appFailure);
57
58 mutable std::mutex m_mutex;
59 std::map<iv::types::appFailureId, std::shared_ptr<iv::diamar::AppFailure>> m_appFailures;
61
62 // In order to facilitate the implementation of the criticalLevelSinceLastCheck method, we store the critical level
63 std::optional<iv::logs::eSystemFailureLogLevel> m_criticalLevelSinceLastCheck;
64};
65
66}// namespace iv::diamar
67
68#endif//IV_SRC_ALARMS_APPFAILURESLOGGERMANAGER_HPP_
Definition AppFailuresLoggerManager.hpp:33
void resetCriticalLevelSinceLastCheck()
Reset the critical level since the last check.
Definition AppFailuresLoggerManager.cpp:115
std::mutex m_mutex
Definition AppFailuresLoggerManager.hpp:58
void logThreadFailure(const iv::types::threadName &threadName, std::string_view specificThreadId, std::string_view failureDescription, iv::logs::eSystemFailureLogLevel level)
Definition AppFailuresLoggerManager.cpp:28
void addOrUpdateAppFailure(const iv::diamar::AppFailure &appFailure)
Definition AppFailuresLoggerManager.cpp:127
std::optional< iv::logs::eSystemFailureLogLevel > criticalLevelSinceLastCheck(bool resetCriticalLevel=false)
Get the highest critical level since the last check.
Definition AppFailuresLoggerManager.cpp:99
iv::types::timestamp lastTimestamp() const
Definition AppFailuresLoggerManager.cpp:87
std::map< iv::types::appFailureId, std::shared_ptr< iv::diamar::AppFailure > > appFailures() const
Definition AppFailuresLoggerManager.cpp:121
std::map< iv::types::appFailureId, std::shared_ptr< iv::diamar::AppFailure > > m_appFailures
Definition AppFailuresLoggerManager.hpp:59
void logCommFailure(const iv::types::networkId &networkId, std::string_view specificCommId, std::string_view failureDescription, iv::logs::eSystemFailureLogLevel level)
Definition AppFailuresLoggerManager.cpp:9
std::weak_ptr< iv::diamar::AppFailure > getAppFailure(const iv::types::appFailureId &failureId) const
Definition AppFailuresLoggerManager.cpp:75
iv::types::timestamp m_lastTimestamp
Definition AppFailuresLoggerManager.hpp:60
void logAppFailure(iv::logs::eSystemFailureCategory category, std::string_view specificCommId, std::string_view failureSource, std::string_view failureDescription, iv::logs::eSystemFailureLogLevel level)
Definition AppFailuresLoggerManager.cpp:47
std::optional< iv::logs::eSystemFailureLogLevel > m_criticalLevelSinceLastCheck
Definition AppFailuresLoggerManager.hpp:63
bool removeAppFailure(const iv::types::appFailureId &failureId)
Definition AppFailuresLoggerManager.cpp:61
Definition DataLoggerManager.cpp:10
eSystemFailureLogLevel
Definition enums.hpp:23
eSystemFailureCategory
Definition enums.hpp:31
std::string appFailureId
Definition types.hpp:80
uint64_t timestamp
Definition types.hpp:21
std::string networkId
Definition types.hpp:43
std::string threadName
Definition types.hpp:26
Definition AppFailuresLoggerManager.hpp:16
std::string source
Definition AppFailuresLoggerManager.hpp:24
iv::types::timestamp timestamp
Definition AppFailuresLoggerManager.hpp:28
std::string description
Definition AppFailuresLoggerManager.hpp:25
iv::types::appFailureId id
Definition AppFailuresLoggerManager.hpp:23
AppFailure(iv::types::appFailureId id_, const std::string_view source_, const std::string_view description_, const iv::logs::eSystemFailureLogLevel level_, iv::logs::eSystemFailureCategory category_, const iv::types::timestamp timestamp_)
Definition AppFailuresLoggerManager.hpp:17
iv::logs::eSystemFailureCategory category
Definition AppFailuresLoggerManager.hpp:27
iv::logs::eSystemFailureLogLevel level
Definition AppFailuresLoggerManager.hpp:26
uint64_t counts
Definition AppFailuresLoggerManager.hpp:29