FastLED 3.10.8
Loading...
Searching...
No Matches
log.h File Reference

Detailed Description

Centralized logging categories for FastLED hardware interfaces and subsystems.

This file provides category-specific logging macros for different FastLED subsystems. Each category can be independently enabled/disabled via preprocessor defines at compile-time.

Usage:

  • Enable category debugging: Define FL_LOG_<CATEGORY>ENABLED before including this file
  • Use the macro: FL_LOG<CATEGORY>("message" << value)
  • Logging is compile-time controlled; disabled categories produce no code

Example: #define FL_LOG_SPI_ENABLED #include "fl/log/log.h"

FL_LOG_SPI("Initializing SPI bus " << bus_id);

Definition in file log.h.

+ Include dependency graph for log.h:

Go to the source code of this file.

Classes

class  fl::detail::log_literal< N >
 
class  fl::detail::log_seed
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 
namespace  fl::detail
 Compile-time linker keep-alive hook for a single fl::Bus.
 

Macros

#define _FASTLED_DGB(X)
 
#define _FL_DBG_M(...)
 
#define _FL_ERROR_M(...)
 
#define _FL_ERROR_S(X)
 
#define _FL_INFO_M(...)
 
#define _FL_INFO_S(X)
 
#define _FL_LOG_ASYNC_M(logger, ...)
 
#define _FL_LOG_ASYNC_S(logger, X)
 Generic async logging macro (captures stream expression into string)
 
#define _FL_LOG_CHECK(...)
 
#define _FL_LOG_NOOP_S(X)
 
#define _FL_LOG_PRINTF_BANNED(...)
 
#define _FL_PRINT_M(...)
 
#define _FL_PRINT_S(X)
 Print without prefix (like FL_WARN but without "WARN: " prefix) Uses sstream for dynamic formatting (avoids printf bloat ~40KB, adds ~3KB) Supports stream-style formatting with << operator.
 
#define _FL_VA_DISPATCH(_S, _M, ...)
 
#define _FL_VA_PICK17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, NAME, ...)
 
#define _FL_WARN_M(...)
 
#define _FL_WARN_S(X)
 
#define FASTLED_DBG(...)
 
#define FASTLED_DBG_IF(COND, ...)
 
#define FASTLED_ERROR(...)
 
#define FASTLED_ERROR_IF(COND, ...)
 
#define FASTLED_FORCE_DBG   1
 
#define FASTLED_HAS_DBG   0
 
#define FASTLED_INFO(...)
 
#define FASTLED_INFO_IF(COND, ...)
 
#define FASTLED_LOG_LITE_ENABLED   0
 
#define FASTLED_LOG_RUNTIME_ENABLED   0
 
#define FASTLED_WARN(...)
 
#define FASTLED_WARN_IF(COND, ...)
 
#define FL_DBG   FASTLED_DBG
 
#define FL_DBG_EVERY(MILLIS, ...)
 
#define FL_DBG_IF   FASTLED_DBG_IF
 
#define FL_DBG_NO_OP(X)
 
#define FL_ERROR(...)
 
#define FL_ERROR_IF(COND, ...)
 
#define FL_HAS_RMT_LOG   0
 Remote Control Module (RMT) logging (ESP32) Logs RMT channel configuration, timing, and signal generation.
 
#define FL_HAS_WARN   0
 
#define FL_INFO(...)
 
#define FL_INFO_IF(COND, ...)
 
#define FL_INFO_ONCE(...)
 
#define FL_LOG_ASYNC(logger, ...)
 
#define FL_LOG_ASYNC_ISR(logger, msg)
 
#define FL_LOG_AUDIO(...)
 Audio processing logging Logs audio sample processing, FFT computation, beat detection, and detector updates.
 
#define FL_LOG_AUDIO_ASYNC_FLUSH()
 
#define FL_LOG_AUDIO_ASYNC_ISR(X)
 
#define FL_LOG_AUDIO_ASYNC_MAIN(...)
 
#define FL_LOG_FLEXIO(...)
 FlexIO logging (Teensy 4.x) Logs FlexIO configuration, pin setup, DMA, and signal generation.
 
#define FL_LOG_FLEXIO_ASYNC_FLUSH()
 
#define FL_LOG_FLEXIO_ASYNC_ISR(X)
 
#define FL_LOG_FLEXIO_ASYNC_MAIN(...)
 
#define FL_LOG_INTERRUPT(...)
 Interrupt handling logging Logs interrupt installation, handler registration, and ISR events.
 
#define FL_LOG_INTERRUPT_ASYNC_FLUSH()
 
#define FL_LOG_INTERRUPT_ASYNC_ISR(X)
 
#define FL_LOG_INTERRUPT_ASYNC_MAIN(...)
 
#define FL_LOG_LEVEL   1
 
#define FL_LOG_LIT(LITERAL)
 
#define FL_LOG_OBJECTFLED(...)
 ObjectFLED logging (Teensy 4.x) Logs ObjectFLED configuration, pin mapping, and DMA transfers.
 
#define FL_LOG_OBJECTFLED_ASYNC_FLUSH()
 
#define FL_LOG_OBJECTFLED_ASYNC_ISR(X)
 
#define FL_LOG_OBJECTFLED_ASYNC_MAIN(...)
 
#define FL_LOG_PARLIO(...)
 Parallel I/O (Parlio) logging (ESP32-P4) Logs Parlio configuration, GPIO setup, and parallel transfers.
 
#define FL_LOG_PARLIO_ASYNC_FLUSH()
 
#define FL_LOG_PARLIO_ASYNC_ISR(X)
 
#define FL_LOG_PARLIO_ASYNC_MAIN(...)
 
#define FL_LOG_RMT(...)
 
#define FL_LOG_RMT_ASYNC_FLUSH()
 
#define FL_LOG_RMT_ASYNC_ISR(X)
 
#define FL_LOG_RMT_ASYNC_MAIN(...)
 
#define FL_LOG_SPI(...)
 Serial Peripheral Interface (SPI) logging Logs SPI configuration, initialization, and transfers.
 
#define FL_LOG_SPI_ASYNC_FLUSH()
 
#define FL_LOG_SPI_ASYNC_ISR(X)
 
#define FL_LOG_SPI_ASYNC_MAIN(...)
 
#define FL_PRINT(...)
 
#define FL_PRINT_EVERY(MILLIS, ...)
 
#define FL_PRINTLN_DECLARED
 
#define FL_WARN(...)
 
#define FL_WARN_EVERY(MILLIS, ...)
 
#define FL_WARN_FMT(...)
 
#define FL_WARN_FMT_IF(COND, ...)
 
#define FL_WARN_IF(COND, ...)
 
#define FL_WARN_LIT(LITERAL)
 
#define FL_WARN_ONCE(...)
 

Enumerations

enum class  fl::detail::log_kind : fl::u8 { fl::detail::WARN = 0 , fl::detail::ERROR = 1 , fl::detail::INFO = 2 }
 

Functions

template<typename Logger, fl::size N>
void fl::detail::async_log_emit_auto (Logger &logger, const log_literal< N > &body) FL_NO_EXCEPT
 
template<typename Logger>
void fl::detail::async_log_emit_auto (Logger &logger, fl::sstream &&body) FL_NO_EXCEPT
 
template<typename Logger>
void fl::detail::async_log_emit_auto (Logger &logger, fl::sstream &body) FL_NO_EXCEPT
 
void fl::async_log_service () FL_NO_EXCEPT
 
void fl::configureAsyncLogService (u32 interval_ms=16, fl::size messages_per_tick=5) FL_NO_EXCEPT
 Configure async logger automatic servicing task.
 
const char * fl::fastled_file_offset (const char *file) FL_NO_EXCEPT
 
FL_NO_INLINE void fl::detail::log_emit (log_kind kind, const char *file, int line, fl::sstream &body) FL_NO_EXCEPT
 
template<fl::size N>
void fl::detail::log_emit_auto (log_kind kind, const char *file, int line, const log_literal< N > &body) FL_NO_EXCEPT
 
void fl::detail::log_emit_auto (log_kind kind, const char *file, int line, fl::sstream &&body) FL_NO_EXCEPT
 
void fl::detail::log_emit_auto (log_kind kind, const char *file, int line, fl::sstream &body) FL_NO_EXCEPT
 
FL_NO_INLINE void fl::detail::log_emit_literal (log_kind kind, const char *file, int line, const char *body) FL_NO_EXCEPT
 
FL_NO_INLINE void fl::detail::log_emit_newline () FL_NO_EXCEPT
 
FL_NO_INLINE void fl::detail::log_emit_prefix (log_kind kind, const char *file, int line) FL_NO_EXCEPT
 
FL_NO_INLINE const char * fl::detail::log_kind_name (log_kind kind) FL_NO_EXCEPT
 
template<fl::size N>
void fl::detail::print_emit_auto (const log_literal< N > &body) FL_NO_EXCEPT
 
void fl::detail::print_emit_auto (fl::sstream &&body) FL_NO_EXCEPT
 
void fl::detail::print_emit_auto (fl::sstream &body) FL_NO_EXCEPT
 
void fl::println (const char *str) FL_NO_EXCEPT