HF-Core Platform 0.1.0-dev
Hardware-Agnostic Handler Layer & RTOS Utilities for HardFOC
Loading...
Searching...
No Matches
Logger.h File Reference

Advanced logging system with formatting capabilities. More...

#include <cstdarg>
#include <cstring>
#include <memory>
#include <atomic>
Include dependency graph for Logger.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  LogConfig
 Logging configuration. More...
 
struct  AsciiArtFormat
 ASCII art formatting options. More...
 
class  Logger
 Advanced logging system with formatting capabilities. More...
 
struct  Logger::TagLevel
 

Macros

#define LOG_ERROR(tag, ...)   Logger::GetInstance().Error(tag, __VA_ARGS__)
 
#define LOG_WARN(tag, ...)   Logger::GetInstance().Warn(tag, __VA_ARGS__)
 
#define LOG_INFO(tag, ...)   Logger::GetInstance().Info(tag, __VA_ARGS__)
 
#define LOG_DEBUG(tag, ...)   Logger::GetInstance().Debug(tag, __VA_ARGS__)
 
#define LOG_VERBOSE(tag, ...)   Logger::GetInstance().Verbose(tag, __VA_ARGS__)
 
#define LOG_ERROR_FORMATTED(tag, color, style, ...)   Logger::GetInstance().Error(tag, color, style, __VA_ARGS__)
 
#define LOG_WARN_FORMATTED(tag, color, style, ...)   Logger::GetInstance().Warn(tag, color, style, __VA_ARGS__)
 
#define LOG_INFO_FORMATTED(tag, color, style, ...)   Logger::GetInstance().Info(tag, color, style, __VA_ARGS__)
 
#define LOG_DEBUG_FORMATTED(tag, color, style, ...)   Logger::GetInstance().Debug(tag, color, style, __VA_ARGS__)
 
#define LOG_VERBOSE_FORMATTED(tag, color, style, ...)   Logger::GetInstance().Verbose(tag, color, style, __VA_ARGS__)
 
#define LOG_ASCII_ART(tag, art, format)   Logger::GetInstance().LogAsciiArt(tag, art, format)
 
#define LOG_BANNER(tag, art, format)   Logger::GetInstance().LogBanner(tag, art, format)
 

Enumerations

enum class  LogStyle : uint8_t {
  NORMAL = 0 , BOLD = 1 , ITALIC = 2 , UNDERLINE = 3 ,
  STRIKETHROUGH = 4 , DOUBLE_UNDERLINE = 5
}
 Text formatting styles. More...
 
enum class  LogColor : uint8_t {
  DEFAULT = 0 , BLACK = 30 , RED = 31 , GREEN = 32 ,
  YELLOW = 33 , BLUE = 34 , MAGENTA = 35 , CYAN = 36 ,
  WHITE = 37 , BRIGHT_BLACK = 90 , BRIGHT_RED = 91 , BRIGHT_GREEN = 92 ,
  BRIGHT_YELLOW = 93 , BRIGHT_BLUE = 94 , BRIGHT_MAGENTA = 95 , BRIGHT_CYAN = 96 ,
  BRIGHT_WHITE = 97
}
 Text colors (ANSI color codes) More...
 
enum class  LogBackground : uint8_t {
  DEFAULT = 0 , BLACK = 40 , RED = 41 , GREEN = 42 ,
  YELLOW = 43 , BLUE = 44 , MAGENTA = 45 , CYAN = 46 ,
  WHITE = 47 , BRIGHT_BLACK = 100 , BRIGHT_RED = 101 , BRIGHT_GREEN = 102 ,
  BRIGHT_YELLOW = 103 , BRIGHT_BLUE = 104 , BRIGHT_MAGENTA = 105 , BRIGHT_CYAN = 106 ,
  BRIGHT_WHITE = 107
}
 Background colors (ANSI color codes) More...
 
enum class  LogLevel : uint8_t {
  ERROR = 0 , WARN = 1 , INFO = 2 , DEBUG = 3 ,
  VERBOSE = 4
}
 Log levels. More...
 

Detailed Description

Advanced logging system with formatting capabilities.

This file provides a comprehensive logging system that supports various formatting options including colors, styles, and effects. It can also handle ASCII art formatting and display.

Author
Nebiyu Tadesse
Date
2025

Macro Definition Documentation

◆ LOG_ASCII_ART

#define LOG_ASCII_ART ( tag,
art,
format )   Logger::GetInstance().LogAsciiArt(tag, art, format)

◆ LOG_BANNER

#define LOG_BANNER ( tag,
art,
format )   Logger::GetInstance().LogBanner(tag, art, format)

◆ LOG_DEBUG

#define LOG_DEBUG ( tag,
... )   Logger::GetInstance().Debug(tag, __VA_ARGS__)

◆ LOG_DEBUG_FORMATTED

#define LOG_DEBUG_FORMATTED ( tag,
color,
style,
... )   Logger::GetInstance().Debug(tag, color, style, __VA_ARGS__)

◆ LOG_ERROR

#define LOG_ERROR ( tag,
... )   Logger::GetInstance().Error(tag, __VA_ARGS__)

◆ LOG_ERROR_FORMATTED

#define LOG_ERROR_FORMATTED ( tag,
color,
style,
... )   Logger::GetInstance().Error(tag, color, style, __VA_ARGS__)

◆ LOG_INFO

#define LOG_INFO ( tag,
... )   Logger::GetInstance().Info(tag, __VA_ARGS__)

◆ LOG_INFO_FORMATTED

#define LOG_INFO_FORMATTED ( tag,
color,
style,
... )   Logger::GetInstance().Info(tag, color, style, __VA_ARGS__)

◆ LOG_VERBOSE

#define LOG_VERBOSE ( tag,
... )   Logger::GetInstance().Verbose(tag, __VA_ARGS__)

◆ LOG_VERBOSE_FORMATTED

#define LOG_VERBOSE_FORMATTED ( tag,
color,
style,
... )   Logger::GetInstance().Verbose(tag, color, style, __VA_ARGS__)

◆ LOG_WARN

#define LOG_WARN ( tag,
... )   Logger::GetInstance().Warn(tag, __VA_ARGS__)

◆ LOG_WARN_FORMATTED

#define LOG_WARN_FORMATTED ( tag,
color,
style,
... )   Logger::GetInstance().Warn(tag, color, style, __VA_ARGS__)

Enumeration Type Documentation

◆ LogBackground

enum class LogBackground : uint8_t
strong

Background colors (ANSI color codes)

Enumerator
DEFAULT 

Default background.

BLACK 

Black background.

RED 

Red background.

GREEN 

Green background.

YELLOW 

Yellow background.

BLUE 

Blue background.

MAGENTA 

Magenta background.

CYAN 

Cyan background.

WHITE 

White background.

BRIGHT_BLACK 

Bright black background.

BRIGHT_RED 

Bright red background.

BRIGHT_GREEN 

Bright green background.

BRIGHT_YELLOW 

Bright yellow background.

BRIGHT_BLUE 

Bright blue background.

BRIGHT_MAGENTA 

Bright magenta background.

BRIGHT_CYAN 

Bright cyan background.

BRIGHT_WHITE 

Bright white background.

◆ LogColor

enum class LogColor : uint8_t
strong

Text colors (ANSI color codes)

Enumerator
DEFAULT 

Default color.

BLACK 

Black.

RED 

Red.

GREEN 

Green.

YELLOW 

Yellow.

BLUE 

Blue.

MAGENTA 

Magenta.

CYAN 

Cyan.

WHITE 

White.

BRIGHT_BLACK 

Bright black.

BRIGHT_RED 

Bright red.

BRIGHT_GREEN 

Bright green.

BRIGHT_YELLOW 

Bright yellow.

BRIGHT_BLUE 

Bright blue.

BRIGHT_MAGENTA 

Bright magenta.

BRIGHT_CYAN 

Bright cyan.

BRIGHT_WHITE 

Bright white.

◆ LogLevel

enum class LogLevel : uint8_t
strong

Log levels.

Enumerator
ERROR 

Error level.

WARN 

Warning level.

INFO 

Info level.

DEBUG 

Debug level.

VERBOSE 

Verbose level.

◆ LogStyle

enum class LogStyle : uint8_t
strong

Text formatting styles.

Enumerator
NORMAL 

Normal text.

BOLD 

Bold text.

ITALIC 

Italic text.

UNDERLINE 

Underlined text.

STRIKETHROUGH 

Strikethrough text.

DOUBLE_UNDERLINE 

Double underlined text.