arduino-audio-driver
Loading...
Searching...
No Matches
LoggerSTD.h
Go to the documentation of this file.
1// logging methods that can be called from C and C++
2#pragma once
3#include "ConfigAudioDriver.h"
4
5// maximum size of log string
6#define AD_LOGLENGTH 215
7
8// Logging of method
9#define LOG_METHOD __PRETTY_FUNCTION__
10// Log trace
11#define AD_TRACED() AD_LOGD(LOG_METHOD)
12
13#if AUDIO_DRIVER_LOGGIN_ACTVIE && !defined(AUDIO_DRIVER_LOGGING_IDF)
14
15#include <stdarg.h>
16#include <stdio.h>
17#include <string.h>
18
19#if defined(ARDUINO)
20# include "Arduino.h"
21#endif
22
23inline int LOGLEVEL_AUDIODRIVER = AUDIO_DRIVER_LOG_LEVEL;
24
25#if defined(ARDUINO)
26inline Print *p_audio_driver_log_output = &Serial;
27#endif
28
29inline void audioDriverLogStr(const char *msg) {
30#if defined(ARDUINO)
31 if (p_audio_driver_log_output) p_audio_driver_log_output->println(msg);
32#else
33 printf("%s\n", msg);
34#endif
35}
36
37inline void AD_LOGD(const char *fmr, ...) {
38 if (LOGLEVEL_AUDIODRIVER <= 0) {
39 char log_buffer[AD_LOGLENGTH + 1];
40 strcpy(log_buffer, "Debug: ");
41 va_list arg;
42 va_start(arg, fmr);
43 vsnprintf(log_buffer + 9, AD_LOGLENGTH - 9, fmr, arg);
44 va_end(arg);
45 audioDriverLogStr(log_buffer);
46 }
47}
48
49inline void AD_LOGI(const char *fmr, ...) {
50 if (LOGLEVEL_AUDIODRIVER <= 1) {
51 char log_buffer[AD_LOGLENGTH + 1];
52 strcpy(log_buffer, "Info: ");
53 va_list arg;
54 va_start(arg, fmr);
55 vsnprintf(log_buffer + 9, AD_LOGLENGTH - 9, fmr, arg);
56 va_end(arg);
57 audioDriverLogStr(log_buffer);
58 }
59}
60
61inline void AD_LOGW(const char *fmr, ...) {
62 if (LOGLEVEL_AUDIODRIVER <= 2) {
63 char log_buffer[AD_LOGLENGTH + 1];
64 strcpy(log_buffer, "Warning: ");
65 va_list arg;
66 va_start(arg, fmr);
67 vsnprintf(log_buffer + 9, AD_LOGLENGTH - 9, fmr, arg);
68 va_end(arg);
69 audioDriverLogStr(log_buffer);
70 }
71}
72
73inline void AD_LOGE(const char *fmr, ...) {
74 if (LOGLEVEL_AUDIODRIVER <= 3) {
75 char log_buffer[AD_LOGLENGTH + 1];
76 strcpy(log_buffer, "Error: ");
77 va_list arg;
78 va_start(arg, fmr);
79 vsnprintf(log_buffer + 9, AD_LOGLENGTH - 9, fmr, arg);
80 va_end(arg);
81 audioDriverLogStr(log_buffer);
82 }
83}
84
85#if defined(ARDUINO)
86inline void setAudioDriverLogOutput(void *out) {
87 p_audio_driver_log_output = (Print *)out;
88}
89#else
90inline void setAudioDriverLogOutput(void *out) {}
91#endif
92
93#endif // AUDIO_DRIVER_LOGGIN_ACTVIE && !defined(AUDIO_DRIVER_LOGGING_IDF)
#define AUDIO_DRIVER_LOG_LEVEL
Define the default log level for the standard logger (2=Warning)
Definition ConfigAudioDriver.h:49
#define AD_LOGD(...)
Definition Logger.h:12
#define AD_LOGI(...)
Definition Logger.h:13
#define AD_LOGE(...)
Definition Logger.h:15
#define AD_LOGW(...)
Definition Logger.h:14
#define AD_LOGLENGTH
Definition LoggerSTD.h:6