Easys
A minimalist, header-only C++ ECS library for efficient and fuss-free entity and component management.
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Enumerations | Functions
log.hpp File Reference
#include <chrono>
#include <cstdint>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <mutex>
#include <source_location>
#include <sstream>
#include <string_view>
#include "config.hpp"
Include dependency graph for log.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Easys::log::is_enabled< L >
 
class  Easys::log::FileWriter
 
struct  Easys::log::source_location
 
class  Easys::log::EntryExitLogger
 

Namespaces

namespace  Easys
 
namespace  Easys::log
 

Macros

#define EASYS_HERE   Easys::log::source_location(__FILE__, __LINE__, __FUNCTION__, __func__)
 
#define EASYS_LOG_IMPL(level, msg)
 
#define EASYS_LOG_ERROR(msg)   EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_ERROR, msg)
 
#define EASYS_LOG_INFO(msg)   EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_INFO, msg)
 
#define EASYS_LOG_DEBUG(msg)   EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_DEBUG, msg)
 
#define EASYS_LOG_TRACE(msg)   EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_TRACE, msg)
 
#define EASYS_LOG_ENTRY_EXIT
 
#define EASYS_E_STR(e)   std::format("Entity: {}", e)
 
#define EASYS_EC_STR(e)   std::format("Entity: {}, Component: {}", e, typeid(T).name())
 

Enumerations

enum class  Easys::log::LogLevel : int {
  Easys::log::EASYS_NONE = 0 , Easys::log::EASYS_ERROR = 1 , Easys::log::EASYS_INFO = 2 , Easys::log::EASYS_DEBUG = 3 ,
  Easys::log::EASYS_TRACE = 4
}
 

Functions

std::string Easys::log::get_timestamp ()
 
constexpr std::string_view Easys::log::level_to_string (LogLevel level)
 
void Easys::log::log_impl (LogLevel level, std::string_view message, Easys::log::source_location location)
 

Macro Definition Documentation

◆ EASYS_E_STR

#define EASYS_E_STR (   e)    std::format("Entity: {}", e)

◆ EASYS_EC_STR

#define EASYS_EC_STR (   e)    std::format("Entity: {}, Component: {}", e, typeid(T).name())

◆ EASYS_HERE

#define EASYS_HERE   Easys::log::source_location(__FILE__, __LINE__, __FUNCTION__, __func__)

◆ EASYS_LOG_DEBUG

#define EASYS_LOG_DEBUG (   msg)    EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_DEBUG, msg)

◆ EASYS_LOG_ENTRY_EXIT

#define EASYS_LOG_ENTRY_EXIT
Value:
do \
{ \
{ \
} \
} while (0)
Definition log.hpp:154
#define EASYS_HERE
Definition log.hpp:167
Definition log.hpp:21

◆ EASYS_LOG_ERROR

#define EASYS_LOG_ERROR (   msg)    EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_ERROR, msg)

◆ EASYS_LOG_IMPL

#define EASYS_LOG_IMPL (   level,
  msg 
)
Value:
do \
{ \
{ \
::Easys::log::log_impl(level, msg, EASYS_HERE); \
} \
} while (0)

◆ EASYS_LOG_INFO

#define EASYS_LOG_INFO (   msg)    EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_INFO, msg)

◆ EASYS_LOG_TRACE

#define EASYS_LOG_TRACE (   msg)    EASYS_LOG_IMPL(Easys::log::LogLevel::EASYS_TRACE, msg)