diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2025-10-19 00:12:50 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2025-10-19 00:31:19 +0200 |
| commit | e7c74917191a4953d495295b65732aa3549ba753 (patch) | |
| tree | fde3fc6080786b3e3e4526b3793bacbb390d2b17 /src/logger.cc | |
| parent | 4f6ead7c2c646b6b866274299c05d08170d2dfb0 (diff) | |
Add new module websocket and use it
Implement /api/v1/events which will send out messages when
things change, such as the main controller.
Diffstat (limited to 'src/logger.cc')
| -rw-r--r-- | src/logger.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/logger.cc b/src/logger.cc index 21effff..104797f 100644 --- a/src/logger.cc +++ b/src/logger.cc @@ -1,6 +1,7 @@ #include "logger.hh" #include <cstdint> +#include <format> #include <iostream> #include <memory> #include <string> @@ -125,6 +126,34 @@ class StderrLogger : public BaseLogger { bool const verbose_; }; +class PrefixLogger : public Logger { + public: + PrefixLogger(Logger& logger, std::string prefix) + : logger_(logger), prefix_(std::move(prefix)) {} + + void err(std::string_view message) override { + logger_.err(std::format("{}: {}", prefix_, message)); + } + + void warn(std::string_view message) override { + logger_.warn(std::format("{}: {}", prefix_, message)); + } + + void info(std::string_view message) override { + logger_.info(std::format("{}: {}", prefix_, message)); + } + +#if !defined(NDEBUG) + void dbg(std::string_view message) override { + logger_.dbg(std::format("{}: {}", prefix_, message)); + } +#endif + + private: + Logger& logger_; + std::string prefix_; +}; + } // namespace [[nodiscard]] @@ -142,4 +171,9 @@ std::unique_ptr<Logger> stderr(bool verbose) { return std::make_unique<StderrLogger>(verbose); } +[[nodiscard]] +std::unique_ptr<Logger> prefix(Logger& logger, std::string prefix) { + return std::make_unique<PrefixLogger>(logger, std::move(prefix)); +} + } // namespace logger |
