#pragma once #include #include #include namespace test { class TestLogger : public nxl::autostore::ILogger { public: TestLogger() = default; virtual ~TestLogger() = default; void log(LogLevel level, std::string_view message) override; void vlog(int8_t, std::string_view message) override; private: std::mutex mutex_; }; void TestLogger::log(LogLevel level, std::string_view message) { std::lock_guard lock(mutex_); const char* levelStr = ""; switch (level) { case LogLevel::Info: levelStr = "INFO"; break; case LogLevel::Warning: levelStr = "WARNING"; break; case LogLevel::Error: levelStr = "ERROR"; break; case LogLevel::Debug: levelStr = "DEBUG"; break; case LogLevel::Verbose: levelStr = "VERBOSE"; break; } std::cout << "[" << levelStr << "] " << message << std::endl; } void TestLogger::vlog(int8_t level, std::string_view message) { std::lock_guard lock(mutex_); std::cout << "[V" << static_cast(level) << "] " << message << std::endl; } } // namespace test