Multiple implementations of the same back-end application. The aim is to provide quick, side-by-side comparisons of different technologies (languages, frameworks, libraries) while preserving consistent business logic across all implementations.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

51 lines
1.1 KiB

#pragma once
#include <autostore/ILogger.h>
#include <iostream>
#include <mutex>
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<std::mutex> 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<std::mutex> lock(mutex_);
std::cout << "[V" << static_cast<int>(level) << "] " << message << std::endl;
}
} // namespace test