JXCT Soil Sensor 7-in-1 v3.4.9 (June 2025)
Professional IoT soil monitoring system with ESP32, Modbus RTU, MQTT, and advanced compensation algorithms
Загрузка...
Поиск...
Не найдено
logger.cpp
См. документацию.
1
5
6#include "logger.h"
7#include <WiFi.h>
8#include <stdarg.h>
9
10// Глобальная переменная уровня логгирования
12
13// Получение времени работы в читаемом формате
15{
16 unsigned long totalSeconds = millis() / 1000;
17 unsigned long hours = totalSeconds / 3600;
18 unsigned long minutes = (totalSeconds % 3600) / 60;
19 unsigned long seconds = totalSeconds % 60;
20
21 return String(hours) + ":" + (minutes < 10 ? "0" : "") + String(minutes) + ":" + (seconds < 10 ? "0" : "") +
22 String(seconds);
23}
24
25// Вывод заголовка секции
26void logPrintHeader(const char* title, const char* color)
27{
28 Serial.println();
29 Serial.print(color);
30 Serial.print(COLOR_BOLD);
31 logPrintSeparator("═", 60);
32 Serial.printf(" %s\n", title);
33 logPrintSeparator("═", 60);
34 Serial.print(COLOR_RESET);
35}
36
37// Вывод разделителя
38void logPrintSeparator(const char* symbol, int length)
39{
40 for (int i = 0; i < length; i++)
41 {
42 Serial.print(symbol);
43 }
44 Serial.println();
45}
46
47// Вывод баннера
48void logPrintBanner(const char* text)
49{
50 Serial.println();
51 Serial.print(COLOR_CYAN);
52 Serial.print(COLOR_BOLD);
53 logPrintSeparator("*", 60);
54 Serial.printf(" %s\n", text);
55 logPrintSeparator("*", 60);
56 Serial.print(COLOR_RESET);
57 Serial.println();
58}
59
60// Основные функции логгирования
61void logError(const char* format, ...)
62{
63 if (currentLogLevel < LOG_ERROR) return;
64
65 Serial.print(COLOR_RED);
66 Serial.print(LOG_SYMBOL_ERROR " ");
67 Serial.print(COLOR_RESET);
68
69 va_list args;
70 va_start(args, format);
71 char buffer[256];
72 vsnprintf(buffer, sizeof(buffer), format, args);
73 va_end(args);
74
75 Serial.println(buffer);
76}
77
78void logWarn(const char* format, ...)
79{
80 if (currentLogLevel < LOG_WARN) return;
81
82 Serial.print(COLOR_YELLOW);
83 Serial.print(LOG_SYMBOL_WARN);
84 Serial.print(COLOR_RESET);
85
86 va_list args;
87 va_start(args, format);
88 char buffer[256];
89 vsnprintf(buffer, sizeof(buffer), format, args);
90 va_end(args);
91
92 Serial.println(buffer);
93}
94
95void logInfo(const char* format, ...)
96{
97 if (currentLogLevel < LOG_INFO) return;
98
99 Serial.print(COLOR_BLUE);
100 Serial.print(LOG_SYMBOL_INFO);
101 Serial.print(COLOR_RESET);
102
103 va_list args;
104 va_start(args, format);
105 char buffer[256];
106 vsnprintf(buffer, sizeof(buffer), format, args);
107 va_end(args);
108
109 Serial.println(buffer);
110}
111
112void logDebug(const char* format, ...)
113{
114 if (currentLogLevel < LOG_DEBUG) return;
115
116 Serial.print(COLOR_MAGENTA);
117 Serial.print(LOG_SYMBOL_DEBUG " ");
118 Serial.print(COLOR_RESET);
119
120 va_list args;
121 va_start(args, format);
122 char buffer[256];
123 vsnprintf(buffer, sizeof(buffer), format, args);
124 va_end(args);
125
126 Serial.println(buffer);
127}
128
129void logSuccess(const char* format, ...)
130{
131 Serial.print(COLOR_GREEN);
132 Serial.print(LOG_SYMBOL_SUCCESS " ");
133 Serial.print(COLOR_RESET);
134
135 va_list args;
136 va_start(args, format);
137 char buffer[256];
138 vsnprintf(buffer, sizeof(buffer), format, args);
139 va_end(args);
140
141 Serial.println(buffer);
142}
143
144// Специализированные функции
145void logSensor(const char* format, ...)
146{
147 if (currentLogLevel < LOG_INFO) return;
148
149 Serial.print(COLOR_CYAN);
150 Serial.print(LOG_SYMBOL_SENSOR " ");
151 Serial.print(COLOR_RESET);
152
153 va_list args;
154 va_start(args, format);
155 char buffer[256];
156 vsnprintf(buffer, sizeof(buffer), format, args);
157 va_end(args);
158
159 Serial.println(buffer);
160}
161
162void logWiFi(const char* format, ...)
163{
164 if (currentLogLevel < LOG_INFO) return;
165
166 Serial.print(COLOR_GREEN);
167 Serial.print(LOG_SYMBOL_WIFI " ");
168 Serial.print(COLOR_RESET);
169
170 va_list args;
171 va_start(args, format);
172 char buffer[256];
173 vsnprintf(buffer, sizeof(buffer), format, args);
174 va_end(args);
175
176 Serial.println(buffer);
177}
178
179void logMQTT(const char* format, ...)
180{
181 if (currentLogLevel < LOG_INFO) return;
182
183 Serial.print(COLOR_MAGENTA);
184 Serial.print(LOG_SYMBOL_MQTT " ");
185 Serial.print(COLOR_RESET);
186
187 va_list args;
188 va_start(args, format);
189 char buffer[256];
190 vsnprintf(buffer, sizeof(buffer), format, args);
191 va_end(args);
192
193 Serial.println(buffer);
194}
195
196void logData(const char* format, ...)
197{
198 if (currentLogLevel < LOG_INFO) return;
199
200 Serial.print(COLOR_YELLOW);
201 Serial.print(LOG_SYMBOL_DATA " ");
202 Serial.print(COLOR_RESET);
203
204 va_list args;
205 va_start(args, format);
206 char buffer[256];
207 vsnprintf(buffer, sizeof(buffer), format, args);
208 va_end(args);
209
210 Serial.println(buffer);
211}
212
213void logSystem(const char* format, ...)
214{
215 if (currentLogLevel < LOG_INFO) return;
216
217 Serial.print(COLOR_WHITE);
218 Serial.print(LOG_SYMBOL_SYSTEM);
219 Serial.print(COLOR_RESET);
220
221 va_list args;
222 va_start(args, format);
223 char buffer[256];
224 vsnprintf(buffer, sizeof(buffer), format, args);
225 va_end(args);
226
227 Serial.println(buffer);
228}
229
230// Утилиты
232{
233 logSystem("Время работы: %s", getUptimeString().c_str());
234}
235
237{
238 logSystem("Свободная память: %d байт", ESP.getFreeHeap());
239}
240
242{
243 if (WiFi.status() == WL_CONNECTED)
244 {
245 logWiFi("Подключен к %s, IP: %s, RSSI: %d dBm", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str(),
246 WiFi.RSSI());
247 }
248 else
249 {
250 logWarn("WiFi не подключен (статус: %d)", WiFi.status());
251 }
252}
void logUptime()
Определения logger.cpp:231
LogLevel currentLogLevel
Определения logger.cpp:11
void logDebug(const char *format,...)
Определения logger.cpp:112
void logWarn(const char *format,...)
Определения logger.cpp:78
void logPrintHeader(const char *title, const char *color)
Определения logger.cpp:26
void logPrintSeparator(const char *symbol, int length)
Определения logger.cpp:38
void logSensor(const char *format,...)
Определения logger.cpp:145
void logSuccess(const char *format,...)
Определения logger.cpp:129
void logError(const char *format,...)
Определения logger.cpp:61
void logSystem(const char *format,...)
Определения logger.cpp:213
void logWiFi(const char *format,...)
Определения logger.cpp:162
String getUptimeString()
Определения logger.cpp:14
void logMemoryUsage()
Определения logger.cpp:236
void logInfo(const char *format,...)
Определения logger.cpp:95
void logWiFiStatus()
Определения logger.cpp:241
void logMQTT(const char *format,...)
Определения logger.cpp:179
void logPrintBanner(const char *text)
Определения logger.cpp:48
void logData(const char *format,...)
Определения logger.cpp:196
Система логгирования с красивым форматированием
#define LOG_SYMBOL_SYSTEM
Определения logger.h:33
#define COLOR_RESET
Определения logger.h:36
#define LOG_SYMBOL_ERROR
Определения logger.h:24
#define LOG_SYMBOL_DEBUG
Определения logger.h:27
#define COLOR_BLUE
Определения logger.h:40
#define LOG_SYMBOL_INFO
Определения logger.h:26
#define COLOR_BOLD
Определения logger.h:44
#define LOG_SYMBOL_SUCCESS
Определения logger.h:28
#define COLOR_YELLOW
Определения logger.h:39
#define LOG_SYMBOL_WARN
Определения logger.h:25
#define LOG_SYMBOL_MQTT
Определения logger.h:31
#define COLOR_CYAN
Определения logger.h:42
#define LOG_SYMBOL_SENSOR
Определения logger.h:29
#define COLOR_MAGENTA
Определения logger.h:41
#define COLOR_WHITE
Определения logger.h:43
#define LOG_SYMBOL_WIFI
Определения logger.h:30
#define LOG_SYMBOL_DATA
Определения logger.h:32
LogLevel
Определения logger.h:13
@ LOG_ERROR
Определения logger.h:14
@ LOG_INFO
Определения logger.h:16
@ LOG_DEBUG
Определения logger.h:17
@ LOG_WARN
Определения logger.h:15
#define COLOR_RED
Определения logger.h:37
#define COLOR_GREEN
Определения logger.h:38