LogManager.ixx File
Central manager for scoped loggers with configurable sinks. More...
Included Headers
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <memory>
#include <mutex>
#include <vector>
#include <cstring>
#include <helios.util.log.Logger>
#include <helios.util.log.LogSink>
Namespaces Index
| namespace | helios |
| namespace | util |
|
Utility functions and helper classes. More... | |
| namespace | log |
|
Logging system with self-registering output sinks. More... | |
Classes Index
| class | LogManager |
|
LogManager for managing scoped Loggers and global sink configuration. More... | |
Macro Definitions Index
| #define | LOGGING_ENABLED true |
Description
Central manager for scoped loggers with configurable sinks.
Macro Definitions
LOGGING_ENABLED
|
Definition at line 20 of file LogManager.ixx.
20#define LOGGING_ENABLED true
File Listing
The file content with the documentation metadata removed is:
20#define LOGGING_ENABLED true
21export namespace helios::util::log {
43 class LogManager {
50 bool loggingEnabled_ = LOGGING_ENABLED;
106 for (auto& [scope, logger] : loggers_) {
107 logger->clearSinks();
110 logger->addSink(sink);
128 static const Logger& loggerForScope(const std::string& scope) noexcept {
129 return LogManager::getInstance().registerLogger(scope);
132 ~LogManager() = default;
139 LogManager(const LogManager&) = delete;
147 static LogManager& getInstance() noexcept {
177 auto log = loggers_.find(scope);
178 if (log != loggers_.end()) {
179 return *(log->second);
195 [[nodiscard]] Logger& registerLogger(const std::string& scope) noexcept {
200 return *(log->second);
203 auto logger = std::make_unique<Logger>(scope);
204 loggers_[scope] = std::move(logger);
225 void enableLogging(bool enable) noexcept {
247 void setScopeFilter(const std::string& scope) noexcept {
253 std::ignore = LogManager::getInstance().registerLogger(scope);
276 void registerSink(std::shared_ptr<LogSink> sink) {
277 registerSink(std::move(sink), true);
286 void registerSink(std::shared_ptr<LogSink> sink, bool enabled) {
319 void enableSink(SinkTypeId typeId) {
333 void enableSink(std::shared_ptr<LogSink> sink) {
361 void disableSink(SinkTypeId typeId) {
372 void disableSink(std::shared_ptr<LogSink> sink) {
374 disableSink(sink->typeId());
384 [[nodiscard]] bool isSinkEnabled(SinkTypeId typeId) const noexcept {
392 void enableAllSinks() {
405 void disableAllSinks() {
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.