mitteLib
Loading...
Searching...
No Matches
log.hpp File Reference
#include <string_view>
#include <vector>
#include <chrono>
#include <cstdio>
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  mlab::suppress_log
 A utility class to contextually enable/disable some of ESP32 log levels. This class is RAII, so it will restore the original logging level when destroyed. More...
 

Namespaces

namespace  mlab
 

Macros

#define MLAB_LOG_COLOR_E   "\033[0;31m"
 
#define MLAB_LOG_COLOR_W   "\033[0;33m"
 
#define MLAB_LOG_COLOR_I   "\033[0;32m"
 
#define MLAB_LOG_COLOR_D
 
#define MLAB_LOG_COLOR_V
 
#define MLAB_LOG_RESET_COLOR   "\033[0m"
 
#define MLAB_LOG_FORMAT(letter, format)
 
#define LOG_LOCAL_LEVEL   mlab::log_level::info
 
#define LOG_LEVEL(level, tag, format, letter, ...)
 
#define LOGE(tag, format, ...)
 
#define LOGW(tag, format, ...)
 
#define LOGI(tag, format, ...)
 
#define LOGD(tag, format, ...)
 
#define LOGV(tag, format, ...)
 
#define LOG_BUFFER_HEX_LEVEL(level, letter, tag, buffer, buff_len)
 
#define LOGE_BUFFER_HEX(tag, buffer, buff_len)
 
#define LOGW_BUFFER_HEX(tag, buffer, buff_len)
 
#define LOGI_BUFFER_HEX(tag, buffer, buff_len)
 
#define LOGD_BUFFER_HEX(tag, buffer, buff_len)
 
#define LOGV_BUFFER_HEX(tag, buffer, buff_len)
 

Enumerations

enum struct  mlab::log_level : int {
  mlab::none , mlab::error , mlab::warn , mlab::info ,
  mlab::debug , mlab::verbose
}
 

Functions

std::uint32_t mlab::log_timestamp ()
 
void mlab::log_buffer (const char *format, std::uint32_t timestamp, void const *buffer, std::size_t buffer_length)
 
void mlab::set_log_level (std::string_view tag, log_level level)
 
log_level mlab::get_log_level (std::string_view tag)
 
bool mlab::check_log_level (std::string_view tag, log_level level)
 
constexpr std::strong_ordering mlab::operator<=> (log_level l, log_level r)
 

Macro Definition Documentation

◆ LOG_BUFFER_HEX_LEVEL

#define LOG_BUFFER_HEX_LEVEL ( level,
letter,
tag,
buffer,
buff_len )
Value:
do { \
if (static_cast<int>(LOG_LOCAL_LEVEL) >= static_cast<int>(level) and \
::mlab::check_log_level(tag, static_cast<::mlab::log_level>(level))) \
::mlab::log_buffer(MLAB_LOG_FORMAT(letter, "%s"), buffer, buff_len, ::mlab::log_timestamp()); \
} while (false)
#define LOG_LOCAL_LEVEL
Definition log.hpp:67
#define MLAB_LOG_FORMAT(letter, format)
Definition log.hpp:64
std::uint32_t log_timestamp()
Definition log.cpp:14
bool check_log_level(std::string_view tag, log_level level)
Definition log.cpp:83
log_level
Definition log.hpp:46

◆ LOG_LEVEL

#define LOG_LEVEL ( level,
tag,
format,
letter,
... )
Value:
do { \
if (static_cast<int>(LOG_LOCAL_LEVEL) >= static_cast<int>(level) and \
::mlab::check_log_level(tag, static_cast<::mlab::log_level>(level))) \
std::printf((MLAB_LOG_FORMAT(letter, format)), ::mlab::log_timestamp(), tag, ##__VA_ARGS__); \
} while (false)

◆ LOG_LOCAL_LEVEL

#define LOG_LOCAL_LEVEL   mlab::log_level::info

◆ LOGD

#define LOGD ( tag,
format,
... )
Value:
LOG_LEVEL(mlab::log_level::debug, tag, format, D, ##__VA_ARGS__)
#define LOG_LEVEL(level, tag, format, letter,...)
Definition log.hpp:71

◆ LOGD_BUFFER_HEX

#define LOGD_BUFFER_HEX ( tag,
buffer,
buff_len )
Value:
LOG_BUFFER_HEX_LEVEL(mlab::log_level::debug, D, tag, buffer, buff_len)
#define LOG_BUFFER_HEX_LEVEL(level, letter, tag, buffer, buff_len)
Definition log.hpp:84

◆ LOGE

#define LOGE ( tag,
format,
... )
Value:
LOG_LEVEL(mlab::log_level::error, tag, format, E, ##__VA_ARGS__)

◆ LOGE_BUFFER_HEX

#define LOGE_BUFFER_HEX ( tag,
buffer,
buff_len )
Value:
LOG_BUFFER_HEX_LEVEL(mlab::log_level::error, E, tag, buffer, buff_len)

◆ LOGI

#define LOGI ( tag,
format,
... )
Value:
LOG_LEVEL(mlab::log_level::info, tag, format, I, ##__VA_ARGS__)

◆ LOGI_BUFFER_HEX

#define LOGI_BUFFER_HEX ( tag,
buffer,
buff_len )
Value:
LOG_BUFFER_HEX_LEVEL(mlab::log_level::info, I, tag, buffer, buff_len)

◆ LOGV

#define LOGV ( tag,
format,
... )
Value:
LOG_LEVEL(mlab::log_level::verbose, tag, format, V, ##__VA_ARGS__)

◆ LOGV_BUFFER_HEX

#define LOGV_BUFFER_HEX ( tag,
buffer,
buff_len )
Value:

◆ LOGW

#define LOGW ( tag,
format,
... )
Value:
LOG_LEVEL(mlab::log_level::warn, tag, format, W, ##__VA_ARGS__)

◆ LOGW_BUFFER_HEX

#define LOGW_BUFFER_HEX ( tag,
buffer,
buff_len )
Value:
LOG_BUFFER_HEX_LEVEL(mlab::log_level::warn, W, tag, buffer, buff_len)

◆ MLAB_LOG_COLOR_D

#define MLAB_LOG_COLOR_D

◆ MLAB_LOG_COLOR_E

#define MLAB_LOG_COLOR_E   "\033[0;31m"

◆ MLAB_LOG_COLOR_I

#define MLAB_LOG_COLOR_I   "\033[0;32m"

◆ MLAB_LOG_COLOR_V

#define MLAB_LOG_COLOR_V

◆ MLAB_LOG_COLOR_W

#define MLAB_LOG_COLOR_W   "\033[0;33m"

◆ MLAB_LOG_FORMAT

#define MLAB_LOG_FORMAT ( letter,
format )
Value:
MLAB_LOG_COLOR_##letter #letter " (%u) %s: " format MLAB_LOG_RESET_COLOR "\n"
#define MLAB_LOG_RESET_COLOR
Definition log.hpp:63

◆ MLAB_LOG_RESET_COLOR

#define MLAB_LOG_RESET_COLOR   "\033[0m"