11#include "LogDestination.hpp"
12#include "LogLevel.hpp"
17namespace switchboard {
56 static void trace(
const std::string& logMessage);
63 static void debug(
const std::string& logMessage);
70 static void info(
const std::string& logMessage);
77 static void warning(
const std::string& logMessage);
84 static void error(
const std::string& logMessage);
91 explicit LogStream(LogLevel level);
92 LogStream(
const LogStream&) =
delete;
93 LogStream& operator=(
const LogStream&) =
delete;
94 LogStream(LogStream&& other)
noexcept;
96 LogStream& operator=(LogStream&& other)
noexcept;
101 LogStream& operator<<(
const T& value) {
107 LogStream& operator<<(std::ostream& (*manip)(std::ostream&)) {
114 std::ostringstream stream;
120 struct LogStreamFactory {
122 explicit LogStreamFactory(
const LogLevel level) : level(level) {}
128 return std::move(stream);
139 static LogLevel logLevel;
Provides an interface to implement platform-specific logging.
Definition LogDestination.hpp:21
Stream-like interface for logging at different levels.
Definition Logger.hpp:89
Provides logging functionality.
Definition Logger.hpp:23
static LogDestination * getLogDestination()
Gets the log destination of the logger.
static void error(const std::string &logMessage)
Logs an error level message.
static void setLogDestination(LogDestination *destination)
Sets the log destination of the logger.
static LogLevel getLogLevel()
Gets the log level of the logger.
static void debug(const std::string &logMessage)
Logs a debug level message.
static void info(const std::string &logMessage)
Logs an info level message.
static void setLogLevel(LogLevel level)
Sets the log level of the logger.
static void trace(const std::string &logMessage)
Logs a trace level message.
static void warning(const std::string &logMessage)
Logs a warning level message.
Helper factory for creating LogStream instances at different log levels.
Definition Logger.hpp:120