/* * LogCommand.cpp * * Created on: Jul 8, 2021 * Author: Andreas Berthoud */ #include #include #include #include "LogCommand.hpp" void log_debug(const char * format, int nargs, ...) { va_list args; va_start(args, nargs); push_command(LogCommand(format, args, LOG_LEVEL_DEBUG)); va_end(args); } 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 }