You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

55 lines
1.3 KiB

/*
* LogCommand.cpp
*
* Created on: Jul 8, 2021
* Author: Andreas Berthoud
*/
#include <stdarg.h>
#include <string.h>
#include <string>
#include "LogCommand.hpp"
void log_debug(const char * format, int nargs, ...) {
va_list args;
va_start(args, nargs);
LogCommand command = LogCommand(format, args, LOG_LEVEL_DEBUG);
va_end(args);
command.send();
}
void log_info(const char * format, int nargs, ...) {
va_list args;
va_start(args, nargs);
LogCommand command = LogCommand(format, args, LOG_LEVEL_INFO);
va_end(args);
command.send();
}
void log_warning(const char * format, int nargs, ...) {
va_list args;
va_start(args, nargs);
LogCommand command = LogCommand(format, args, LOG_LEVEL_WARNING);
va_end(args);
command.send();
}
void log_error(const char * format, int nargs, ...) {
va_list args;
va_start(args, nargs);
LogCommand command = LogCommand(format, args, LOG_LEVEL_ERROR);
va_end(args);
command.send();
}
LogCommand::LogCommand(const char * format, va_list args, LoggingLevel logging_level) : Command(COMMAND_LOG) {
*this->payload_ptr = logging_level;
vsnprintf((char *)this->payload_ptr + 1, this->max_payload_length - 1, format, args);
this->set_payload_length(strlen((char *)this->payload_ptr) + 1); // strlen + log level
}