1#ifndef CLIENT_HELPERS_H
2#define CLIENT_HELPERS_H
4#include "extern/cpplogger/cpplogger.h"
5#include "IoTeXResultCodes.h"
16#define IOTEX_LOG_LEVEL_TRACE cpplogger::LogLevel::TRACE
17#define IOTEX_LOG_LEVEL_DEBUG cpplogger::LogLevel::DEBUG
18#define IOTEX_LOG_LEVEL_INFO cpplogger::LogLevel::INFO
19#define IOTEX_LOG_LEVEL_WARNING cpplogger::LogLevel::WARNING
20#define IOTEX_LOG_LEVEL_ERROR cpplogger::LogLevel::ERROR
21#define IOTEX_LOG_LEVEL_NONE cpplogger::LogLevel::NONE
23#define IOTEX_DEFAULT_LOG_LEVEL IOTEX_LOG_LEVEL_NONE
29#ifndef IOTEX_LOG_LEVEL
30 #define IOTEX_LOG_LEVEL IOTEX_DEFAULT_LOG_LEVEL
37#if defined(ARDUINO) || defined(ESP8266) || defined(ESP32) || defined(__SAMD21G18A__)
39 #define IotexString String
41 #define IotexString std::string
51#ifndef IOTEX_ENABLE_LOG
52 #define IOTEX_DEBUG(module, ...)
53 #define IOTEX_INFO(module, ...)
54 #define IOTEX_WARNING(module, ...)
55 #define IOTEX_TRACE(module, ...)
56 #define IOTEX_ERROR(module, ...)
57 #define IOTEX_DEBUG_F(module, ...)
58 #define IOTEX_INFO_F(module, ...)
59 #define IOTEX_WARNING_F(module, ...)
60 #define IOTEX_TRACE_F(module, ...)
61 #define IOTEX_ERROR_F(module, ...)
62 #define IOTEX_DEBUG_BUF(module, ...)
63 #define IOTEX_INFO_BUF(module, ...)
64 #define IOTEX_WARNING_BUF(module, ...)
65 #define IOTEX_TRACE_BUF(module, ...)
66 #define IOTEX_ERROR_BUF(module, ...)
73#ifdef IOTEX_ENABLE_LOG
74 #define IOTEX_DEBUG(module, ...) IotexHelpers.logger.LOG_MSG(cpplogger::LogLevel::DEBUG, module, __VA_ARGS__)
75 #define IOTEX_INFO(module, ...) IotexHelpers.logger.LOG_MSG(cpplogger::LogLevel::INFO, module, __VA_ARGS__)
76 #define IOTEX_WARNING(module, ...) IotexHelpers.logger.LOG_MSG(cpplogger::LogLevel::WARNING, module, __VA_ARGS__)
77 #define IOTEX_TRACE(module, ...) IotexHelpers.logger.LOG_MSG(cpplogger::LogLevel::TRACE, module, __VA_ARGS__)
78 #define IOTEX_ERROR(module, ...) IotexHelpers.logger.LOG_MSG(cpplogger::LogLevel::ERROR, module, __VA_ARGS__)
85#ifdef IOTEX_ENABLE_LOG
86 #define IOTEX_DEBUG_BUF(module, buf, size) IotexHelpers.logger.LOG_BUF(cpplogger::LogLevel::DEBUG, module, buf, size)
87 #define IOTEX_INFO_BUF(module, buf, size) IotexHelpers.logger.LOG_BUF(cpplogger::LogLevel::INFO, module, buf, size)
88 #define IOTEX_WARNING_BUF(module, buf, size) IotexHelpers.logger.LOG_BUF(cpplogger::LogLevel::WARNING, module, buf, size)
89 #define IOTEX_TRACE_BUF(module, buf, size) IotexHelpers.logger.LOG_BUF(cpplogger::LogLevel::TRACE, module, buf, size)
90 #define IOTEX_ERROR_BUF(module, buf, size) IotexHelpers.logger.LOG_BUF(cpplogger::LogLevel::ERROR, module, buf, size)
97#ifdef IOTEX_ENABLE_LOG
98 #if !defined(ESP8266) && !defined(ESP32)
99 #define IOTEX_FLASH_STRING_SUPPORT false
101 #define IOTEX_FLASH_STRING_SUPPORT true
104 #if !IOTEX_FLASH_STRING_SUPPORT
105 #define IOTEX_DEBUG_F(module, ...) IOTEX_DEBUG(module, __VA_ARGS__)
106 #define IOTEX_INFO_F(module, ...) IOTEX_INFO(module, __VA_ARGS__)
107 #define IOTEX_WARNING_F(module, ...) IOTEX_WARNING(module, __VA_ARGS__)
108 #define IOTEX_TRACE_F(module, ...) IOTEX_TRACE(module, __VA_ARGS__)
109 #define IOTEX_ERROR_F(module, ...) IOTEX_ERROR(module, __VA_ARGS__)
111 #define IOTEX_DEBUG_F(module, msg) IotexHelpers.logger.LOG_PROGMEM_STRING(cpplogger::LogLevel::DEBUG, module, msg)
112 #define IOTEX_INFO_F(module, msg) IotexHelpers.logger.LOG_PROGMEM_STRING(cpplogger::LogLevel::DEBUG, module, msg)
113 #define IOTEX_WARNING_F(module, msg) IotexHelpers.logger.LOG_PROGMEM_STRING(cpplogger::LogLevel::DEBUG, module, msg)
114 #define IOTEX_TRACE_F(module, msg) IotexHelpers.logger.LOG_PROGMEM_STRING(cpplogger::LogLevel::DEBUG, module, msg)
115 #define IOTEX_ERROR_F(module, msg) IotexHelpers.logger.LOG_PROGMEM_STRING(cpplogger::LogLevel::DEBUG, module, msg)
171 cpplogger::Logger logger;
Class that contains helper methods.
Definition: client_helper.h:168
void vectorToHexString(std::vector< uint8_t > &data, IotexString &out)
Gets the hex string representation of a vector of bytes.
Definition: client_helper.cpp:55
void setModuleLogLevel(const std::string &module, IotexLogLevel level)
Set the Mlog level for a module. Note that the global lov level can override a module log level.
Definition: client_helper.cpp:76
const char * GetResultString(ResultCode code)
Gets the result strinf value of a ResultCode.
Definition: client_helper.cpp:66
void setGlobalLogLevel(IotexLogLevel level)
Sets the log level globally. Overrides log level modules if they are of a higher level.
Definition: client_helper.cpp:71
const std::string & userLogModule
General log module name exposed to the user, so the logger can be used by user code if needed.
Definition: client_helper.cpp:32
IotexLogLevel
Enum representing all the log levels.
Definition: client_helper.h:154
LogModules
Enum that contains the different logging modules of the library.
Definition: client_helper.h:128
const std::string logModuleNamesLookupTable[(int) LogModules::VALUES_COUNT]
Lookup table for log module names. This should be only used by the internal library code.
Definition: client_helper.cpp:22