Changed project back to C++

This commit is contained in:
Piotr Krygier committed 2022-10-05 15:51:19 +02:00
1 parent ce0c399810
commit e7b9d4a32f
15 files changed
+1181 -412

No files matched your search

+73
View File
@@ -0,0 +1,73 @@
/**
* @file log.hpp
* @author Piotr Krygier (everyonencancode@gmail.com)
* @brief Logging interfaces
* @version 0.1
* @date 2022-02-11
*
* @copyright Copyright (c) 2022
*
*/
#pragma once
#include <sstream>
#ifndef LOG_LEVEL
#define LOG_LEVEL LOGLEVEL_WARNING
#endif
#define LOGT rse::log::Logger(rse::log::LOGLEVEL_TRACE)
#define LOGD rse::log::Logger(rse::log::LOGLEVEL_DEBUG)
#define LOGI rse::log::Logger(rse::log::LOGLEVEL_INFO)
#define LOGW rse::log::Logger(rse::log::LOGLEVEL_WARNING)
#define LOGE rse::log::Logger(rse::log::LOGLEVEL_ERROR)
#define LOGF rse::log::Logger(rse::log::LOGLEVEL_FATAL)
namespace rse::log
{
/**
* @brief Log level. Is not an enum class, because level is being compared to enable prints
*
*/
typedef enum
{
LOGLEVEL_TRACE = 1,
LOGLEVEL_DEBUG = 2,
LOGLEVEL_INFO = 3,
LOGLEVEL_WARNING = 4,
LOGLEVEL_ERROR = 5,
LOGLEVEL_FATAL = 6
} LogLevel;
/**
* @brief Class used indirectly as a logger.
*
*/
class Logger {
private:
std::stringstream mMessageBuffer;
public:
/**
* @brief Construct a new Logger object
*
*/
Logger(LogLevel);
~Logger();
/**
* @brief For log printing. I want it to work like log << "Message " << args;
*
*/
template <typename T>
Logger& operator<<(T&& message)
{
mMessageBuffer << message;
return *this;
}
};
} // namespace rse::log