#pragma once #include "LogLevel.h" #include #include enum class OutputType : int { Console = 0x1, File = 0x2 }; inline OutputType operator|(OutputType lhs, OutputType rhs) { using T = std::underlying_type_t; return static_cast(static_cast(lhs) | static_cast(rhs)); } inline OutputType& operator|=(OutputType& lhs, OutputType rhs) { lhs = lhs | rhs; return lhs; } inline OutputType operator&(OutputType lhs, OutputType rhs) { using T = std::underlying_type_t; return static_cast(static_cast(lhs) & static_cast(rhs)); } class LogConfigurator { public: static void Setup(LogLevel level, OutputType output_type, const std::string& profile_name); };