13 #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) 17 #elif defined(ESP_PLATFORM) 26 static std::set<channel_t*>
channels;
43 va_start(argptr, format);
44 vsprintf(buffer, format, argptr);
56 va_start(argptr, format);
57 vsprintf(buffer, format, argptr);
69 va_start(argptr, format);
70 vsprintf(buffer, format, argptr);
82 va_start(argptr, format);
83 vsprintf(buffer, format, argptr);
95 va_start(argptr, format);
96 vsprintf(buffer, format, argptr);
105 if (((
int) level > (
int) this->level) || ((
int) level > (
int) max_level) || level ==
level_t::NONE) {
109 return out(
"%s (%u) %s, %s\n", level_txt,
epoch(),
name, format);
119 #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) 121 #elif defined(ESP_PLATFORM) 122 return esp_log_timestamp();
129 va_start(list, format);
137 if (((
int) level > (
int) this->level) || ((
int) level > (
int) max_level) || level ==
level_t::NONE) {
140 #if defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) 145 for (
int i = 0; i < size ; ++i) {
146 out(
"%02X ", bin[i]);
150 #elif defined(ESP_PLATFORM) 151 esp_log_level_t esp_log_level;
154 esp_log_level = ESP_LOG_VERBOSE;
157 esp_log_level = ESP_LOG_DEBUG;
160 esp_log_level = ESP_LOG_INFO;
163 esp_log_level = ESP_LOG_WARN;
166 esp_log_level = ESP_LOG_ERROR;
170 esp_log_level = ESP_LOG_NONE;
173 ESP_LOG_BUFFER_HEXDUMP(
name, bin, size, esp_log_level);
184 if (!strcmp(candidate->name, channel->
name)) {
188 return channels()->insert(channel).second;
195 if (!strcmp(candidate->name, channel_name)) {
197 candidate->level = new_level;
205 print_function = func;
212 return old_max_level;
218 strcpy(buffer,
"NONE ");
221 strcpy(buffer,
"VERBO");
224 strcpy(buffer,
"DEBUG");
227 strcpy(buffer,
"INFO ");
230 strcpy(buffer,
"WARN ");
233 strcpy(buffer,
"ERROR");
236 strcpy(buffer,
"lvler");
int debug(const char *format,...)
log debug message
vprintf_like_t set_print_function(vprintf_like_t func)
Set a new print function to log to a diffrent location.
const char * name
Channel name, used to identify.
static log::channel_t * log
std::set< channel_t * > * channels()
level_t set_max_level(level_t level)
set maximum print level for all channels
err_t startup_status
Contains the error happens at construction.
channel_t(const char *name, level_t level=default_level)
int(* vprintf_like_t)(const char *, va_list)
int register_channel(channel_t *channel)
level_t level
max log level of channel
vprintf_like_t print_function
int verbose(const char *format,...)
log verbose message
int set_level(const char *channel_name, level_t new_level)
Set level of log channel.
void level_t_to_char(level_t level, char *buffer)
convert level_t object to char
int out(const char *format,...)
int print(level_t level, const char *format)
int warning(const char *format,...)
log warning message
int error(const char *format,...)
log error message
int info(const char *format,...)
log info message
int dump(level_t level, uint8_t *bin, size_t size)
dump array of bin data