ESPHome 2026.3.0
Loading...
Searching...
No Matches
log.cpp
Go to the documentation of this file.
1#include "log.h"
2#include "defines.h"
3#include "helpers.h"
4#include <cstdio>
5
6#ifdef USE_LOGGER
8#endif
9
10namespace esphome {
11
12#ifdef ESPHOME_DEBUG
13static void early_log_printf_(const char *tag, int line, const char *format, va_list args) {
14 fprintf(stderr, "LOG BEFORE LOGGER INIT [%s:%d]: ", tag, line);
15 vfprintf(stderr, format, args);
16 fputc('\n', stderr);
17 assert(false && "log called before Logger::pre_setup()"); // NOLINT
18}
19#endif
20
21void HOT esp_log_printf_(int level, const char *tag, int line, const char *format, ...) { // NOLINT
22#ifdef USE_LOGGER
23#ifdef ESPHOME_DEBUG
24 if (logger::global_logger == nullptr) {
25 va_list arg;
26 va_start(arg, format);
27 early_log_printf_(tag, line, format, arg);
28 va_end(arg);
29 return;
30 }
31#endif
32 va_list arg;
33 va_start(arg, format);
34 logger::global_logger->log_vprintf_(static_cast<uint8_t>(level), tag, line, format, arg);
35 va_end(arg);
36#endif
37}
38
39#ifdef USE_STORE_LOG_STR_IN_FLASH
40void HOT esp_log_printf_(int level, const char *tag, int line, const __FlashStringHelper *format, ...) {
41#ifdef USE_LOGGER
42 ESPHOME_DEBUG_ASSERT(logger::global_logger != nullptr);
43 va_list arg;
44 va_start(arg, format);
45 logger::global_logger->log_vprintf_(static_cast<uint8_t>(level), tag, line, format, arg);
46 va_end(arg);
47#endif
48}
49#endif
50
51void HOT esp_log_vprintf_(int level, const char *tag, int line, const char *format, va_list args) { // NOLINT
52#ifdef USE_LOGGER
53#ifdef ESPHOME_DEBUG
54 if (logger::global_logger == nullptr) {
55 early_log_printf_(tag, line, format, args);
56 return;
57 }
58#endif
59 logger::global_logger->log_vprintf_(static_cast<uint8_t>(level), tag, line, format, args);
60#endif
61}
62
63#ifdef USE_STORE_LOG_STR_IN_FLASH
64// Remove before 2026.9.0
65void HOT esp_log_vprintf_(int level, const char *tag, int line, const __FlashStringHelper *format, va_list args) {
66#ifdef USE_LOGGER
67 ESPHOME_DEBUG_ASSERT(logger::global_logger != nullptr);
68 logger::global_logger->log_vprintf_(static_cast<uint8_t>(level), tag, line, format, args);
69#endif
70}
71#endif
72
73#ifdef USE_ESP32
74int HOT esp_idf_log_vprintf_(const char *format, va_list args) { // NOLINT
75#ifdef USE_LOGGER
76#ifdef ESPHOME_DEBUG
77 if (logger::global_logger == nullptr) {
78 early_log_printf_("esp-idf", 0, format, args);
79 return 0;
80 }
81#endif
82 logger::global_logger->log_vprintf_(ESPHOME_LOG_LEVEL, "esp-idf", 0, format, args);
83#endif
84 return 0;
85}
86#endif
87
88} // namespace esphome
void log_vprintf_(uint8_t level, const char *tag, int line, const char *format, va_list args)
Definition logger.cpp:26
Logger * global_logger
Definition logger.cpp:278
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
const char int line
Definition log.h:74
const char * tag
Definition log.h:74
const char int const __FlashStringHelper * format
Definition log.h:74
const char int const __FlashStringHelper va_list args
Definition log.h:74
int HOT esp_idf_log_vprintf_(const char *format, va_list args)
Definition log.cpp:74
void HOT esp_log_printf_(int level, const char *tag, int line, const char *format,...)
Definition log.cpp:21
va_end(args)
size_t size_t const char va_start(args, fmt)
void HOT esp_log_vprintf_(int level, const char *tag, int line, const char *format, va_list args)
Definition log.cpp:51