26 : stream_(stream), log_level_(level) {}
35 void debug(
const char* format, ...) {
36 if (log_level_ <= LEVEL_DEBUG) {
39 va_start(args, format);
47 void info(
const char* format, ...) {
48 if (log_level_ <= LEVEL_INFO) {
51 va_start(args, format);
59 void warn(
const char* format, ...) {
60 if (log_level_ <= LEVEL_WARNING) {
63 va_start(args, format);
71 void error(
const char* format, ...) {
72 if (log_level_ <= LEVEL_ERROR) {
75 va_start(args, format);
84 if (log_level_ <= LEVEL_CRITICAL) {
87 va_start(args, format);
95 void log(
const char* format, ...) {
96 if (log_level_ <= LEVEL_DEBUG) {
98 va_start(args, format);
105 void logln(
const char* format, ...) {
106 if (log_level_ <= LEVEL_DEBUG) {
108 va_start(args, format);
116 void write(
const char* str) { stream_.write((
const uint8_t*)str, strlen(str)); }
119 void write(
char c) { stream_.write(c); }
122 void write(
int value) { stream_.print(value); }
125 void write(
unsigned int value) { stream_.print(value); }
128 void write(
long value) { stream_.print(value); }
131 void write(
unsigned long value) { stream_.print(value); }
134 void write(
float value) { stream_.print(value); }
137 void write(
float value,
int precision) { stream_.print(value, precision); }
147 void vlog(
const char* format, va_list args) {
149 vsnprintf(buffer,
sizeof(buffer), format, args);
150 stream_.write((
const uint8_t*)buffer, strlen(buffer));
Simple logger for SC16IS752 channels with variadic parameter support and log levels.
Definition SC16IS752Logger.h:13
void setLogLevel(LogLevel level)
Set the current log level.
Definition SC16IS752Logger.h:29
void write(long value)
Log a long integer.
Definition SC16IS752Logger.h:128
void write(char c)
Log a single character.
Definition SC16IS752Logger.h:119
void log(const char *format,...)
Log a formatted message with variadic parameters (respects log level LEVEL_DEBUG)
Definition SC16IS752Logger.h:95
void write(float value)
Log a floating point number.
Definition SC16IS752Logger.h:134
void logln(const char *format,...)
Log with newline (respects log level LEVEL_DEBUG)
Definition SC16IS752Logger.h:105
void write(unsigned int value)
Log an unsigned integer.
Definition SC16IS752Logger.h:125
void info(const char *format,...)
Log a formatted info message.
Definition SC16IS752Logger.h:47
void critical(const char *format,...)
Log a formatted critical message.
Definition SC16IS752Logger.h:83
void newline()
Log a newline.
Definition SC16IS752Logger.h:140
void warn(const char *format,...)
Log a formatted warning message.
Definition SC16IS752Logger.h:59
void write(float value, int precision)
Log a floating point number with precision.
Definition SC16IS752Logger.h:137
void debug(const char *format,...)
Log a formatted debug message.
Definition SC16IS752Logger.h:35
void error(const char *format,...)
Log a formatted error message.
Definition SC16IS752Logger.h:71
void write(unsigned long value)
Log an unsigned long integer.
Definition SC16IS752Logger.h:131
LogLevel
Log levels.
Definition SC16IS752Logger.h:16
void write(int value)
Log an integer.
Definition SC16IS752Logger.h:122
LogLevel getLogLevel()
Get the current log level.
Definition SC16IS752Logger.h:32
void write(const char *str)
Log a simple string.
Definition SC16IS752Logger.h:116