20#ifndef SPDLOG_ACTIVE_LEVEL
23#define SPDLOG_ACTIVE_LEVEL 0
27#define SPDLOG_ACTIVE_LEVEL 2
31#include <spdlog/spdlog.h>
32#include <unordered_map>
90#define IRSOL_LOG_TRACE(...) SPDLOG_TRACE(__VA_ARGS__)
91#define IRSOL_LOG_DEBUG(...) SPDLOG_DEBUG(__VA_ARGS__)
92#define IRSOL_LOG_INFO(...) SPDLOG_INFO(__VA_ARGS__)
93#define IRSOL_LOG_WARN(...) SPDLOG_WARN(__VA_ARGS__)
94#define IRSOL_LOG_ERROR(...) SPDLOG_ERROR(__VA_ARGS__)
95#define IRSOL_LOG_FATAL(...) SPDLOG_CRITICAL(__VA_ARGS__)
127 static spdlog::logger*
getLogger(
const std::string& name);
130 static std::unordered_map<std::string, LoggerInfo>
m_loggers;
172#define IRSOL_NAMED_LOG_TRACE(name, ...) \
173 irsol::internal::NamedLoggerRegistry::getLogger(name)->trace(__VA_ARGS__)
174#define IRSOL_NAMED_LOG_DEBUG(name, ...) \
175 irsol::internal::NamedLoggerRegistry::getLogger(name)->debug(__VA_ARGS__)
176#define IRSOL_NAMED_LOG_INFO(name, ...) \
177 irsol::internal::NamedLoggerRegistry::getLogger(name)->info(__VA_ARGS__)
178#define IRSOL_NAMED_LOG_WARN(name, ...) \
179 irsol::internal::NamedLoggerRegistry::getLogger(name)->warn(__VA_ARGS__)
180#define IRSOL_NAMED_LOG_ERROR(name, ...) \
181 irsol::internal::NamedLoggerRegistry::getLogger(name)->error(__VA_ARGS__)
182#define IRSOL_NAMED_LOG_FATAL(name, ...) \
183 irsol::internal::NamedLoggerRegistry::getLogger(name)->critical(__VA_ARGS__)
210 std::optional<std::shared_ptr<spdlog::logger>> logger = std::nullopt);
245 const char* fileSinkFilename =
"logs/irsol.log",
246 std::optional<spdlog::level::level_enum> minLogLevel = std::nullopt);
256 {
"trace", spdlog::level::trace},
257 {
"debug", spdlog::level::debug},
259 {
"info", spdlog::level::info},
260 {
"warn", spdlog::level::warn},
261 {
"error", spdlog::level::err}};
Manages a registry of named loggers.
static std::unordered_map< std::string, LoggerInfo > m_loggers
Internal logger registry.
static spdlog::logger * getLogger(const std::string &name)
Retrieves a logger by name from the registry.
LoggingFormat
Enum representing supported logging output formats.
void setSinkLoggingFormat(LoggingFormat format, std::shared_ptr< spdlog::sinks::sink > sink)
Sets the logging format for a specific sink.
void setLoggerName(const char *name)
Sets the name of the default logger.
void initLogging(const char *fileSinkFilename="logs/irsol.log", std::optional< spdlog::level::level_enum > minLogLevel=std::nullopt)
Initializes the irsol logging system.
void setLoggingFormat(LoggingFormat format=LoggingFormat::FILE, std::optional< std::shared_ptr< spdlog::logger > > logger=std::nullopt)
Sets the global logging format.
const std::unordered_map< std::string, spdlog::level::level_enum > levelNameToLevelMap
Runtime map from string names to spdlog log levels.
@ CONSOLE
Human-readable format for terminal output.
@ UNIT_TESTS
Format suitable for unit test frameworks.
@ FILE
Persistent file logging format.
clock_t::time_point timepoint_t
Alias for a point in time as defined by clock_t.
Metadata for a named logger instance.
irsol::types::timepoint_t lastRetrieved
Last time this logger was accessed.
std::shared_ptr< spdlog::logger > logger
The spdlog logger instance.
Core type definitions for networking, time handling, and protocol values used throughout the irsol li...