/* * Author: Patrick-Christopher Mattulat * Company: Lynar Studios * E-Mail: webmaster@lynarstudios.com * Created: 2020-08-20 * Changed: 2021-07-16 * * */ #ifndef LS_STD_LOGGER_HPP #define LS_STD_LOGGER_HPP #include #include "LogLevel.hpp" #include #include #include #include namespace ls_std { class Logger : public ls_std::Class { public: explicit Logger(const std::shared_ptr &_writer); ~Logger() override = default; void debug(const ls_std::byte *_data); void error(const ls_std::byte *_data); void fatal(const ls_std::byte *_data); ls_std::LogLevel getLogLevel(); void info(const ls_std::byte *_data); void setLogLevel(const ls_std::LogLevelValue &_logLevelValue); void trace(const ls_std::byte *_data); void warn(const ls_std::byte *_data); private: ls_std::LogLevel logLevel{}; std::shared_ptr writer{}; void _assignWriter(const std::shared_ptr &_writer); void _log(const ls_std::byte *_data, const ls_std::LogLevel &_logLevel); }; } #endif