/** * @file services/logging/logger.h * @brief Abstract interface for pipeline logging. * * Kept intentionally narrow. Components that need to log depend on Logger, * not on PipelineLogger or any channel type. */ #ifndef BIERGARTEN_PIPELINE_INCLUDES_SERVICES_LOGGING_LOGGER_H_ #define BIERGARTEN_PIPELINE_INCLUDES_SERVICES_LOGGING_LOGGER_H_ #include #include #include #include "services/logging/log_entry.h" class ILogger { public: ILogger() = default; ILogger(const ILogger&) = delete; ILogger& operator=(const ILogger&) = delete; ILogger(ILogger&&) = delete; ILogger& operator=(ILogger&&) = delete; virtual ~ILogger() = default; virtual void Log(LogLevel level, PipelinePhase phase, std::string_view message) = 0; }; #endif // BIERGARTEN_PIPELINE_INCLUDES_SERVICES_LOGGING_LOGGER_H_