CCIMXDesktop
 
Loading...
Searching...
No Matches
CCIMXDesktopLoggerCenter.h
1#ifndef CCIMXDESKTOPLOGGERCENTER_H
2#define CCIMXDESKTOPLOGGERCENTER_H
3
4#include "library/simple_gerseter/simple_getseter.hpp"
5#include <QDebug>
6
7class QMutex;
9
18public:
23
29
30 __PROPERTY_GETSET(bool, broadcast_to_old);
31
37
42 std::vector<std::shared_ptr<DesktopLoggerBackends>> backend_shots() const;
43
50
56
60 void availableBackends();
61
67
71 void silentBackends();
72
73private:
78
79 Q_DISABLE_COPY_MOVE(CCIMXDesktopLoggerCenter);
80
81 bool broadcast_to_old { false };
82 QtMessageHandler old_handler { nullptr };
83
90 static void globalMessageHandler(QtMsgType type, const QMessageLogContext& ctx, const QString& msg);
91
92 std::shared_ptr<QMutex> mutex;
93 std::vector<std::shared_ptr<DesktopLoggerBackends>> backends;
94};
95
96#endif // CCIMXDESKTOPLOGGERCENTER_H
Central logging management system for CCIMXDesktop.
Definition CCIMXDesktopLoggerCenter.h:17
static CCIMXDesktopLoggerCenter & global_instance()
Gets the global singleton instance.
Definition CCIMXDesktopLoggerCenter.cpp:7
void availableBackends()
Makes all backends available for logging.
Definition CCIMXDesktopLoggerCenter.cpp:64
bool removeBackend(DesktopLoggerBackends *backend)
Removes a logging backend.
Definition CCIMXDesktopLoggerCenter.cpp:39
~CCIMXDesktopLoggerCenter()
Destructor.
Definition CCIMXDesktopLoggerCenter.cpp:4
void disableTargetBackends(DesktopLoggerBackends *backend)
Disables logging for specific backend.
Definition CCIMXDesktopLoggerCenter.cpp:70
void silentBackends()
Silences all logging backends.
Definition CCIMXDesktopLoggerCenter.cpp:76
std::vector< std::shared_ptr< DesktopLoggerBackends > > backend_shots() const
Gets a snapshot of all registered backends.
Definition CCIMXDesktopLoggerCenter.cpp:33
void registerBackend(DesktopLoggerBackends *backend)
Registers a new logging backend.
Definition CCIMXDesktopLoggerCenter.cpp:12
void availableTargetBackendOnly(DesktopLoggerBackends *backend)
Makes only the specified backend available for logging.
Definition CCIMXDesktopLoggerCenter.cpp:58
Base class for all desktop logger backend implementations.
Definition DesktopLoggerBackends.h:21