1 #pragma once 2 3 #include <memory> 4 #include "./LoggerInterface.h" 5 6 namespace reanimated { 7 8 class Logger { 9 public: 10 template <typename T> log(T value)11 static void log(T value) { 12 if (instance == nullptr) { 13 throw std::runtime_error("no logger specified"); 14 } 15 instance->log(value); 16 } 17 18 private: 19 static std::unique_ptr<LoggerInterface> instance; 20 }; 21 22 } // namespace reanimated 23