init
This commit is contained in:
commit
fe25fdda6a
64
src/logger.cpp
Normal file
64
src/logger.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
#include "logger.h"
|
||||
#define LOGGER_BUFFER_SIZE 4096
|
||||
|
||||
//Levels: 0none, 1error, 2warning, 3info, 4debug, 5verbose
|
||||
|
||||
static char buffer[LOGGER_BUFFER_SIZE]="";
|
||||
|
||||
void add_to_buff(char *msg);
|
||||
|
||||
void logger(byte level, const char* format, ...)
|
||||
{
|
||||
if(level>settings.log_level_local && level>settings.log_level_remote){
|
||||
return;
|
||||
}
|
||||
static char msg[256];
|
||||
va_list argptr;
|
||||
va_start(argptr, format);
|
||||
vsnprintf(msg,256, format, argptr);
|
||||
va_end(argptr);
|
||||
|
||||
static char tmp[256];
|
||||
snprintf(tmp,256,"%d[%d] (%d) %s\r\n",millis(),level,esp_get_free_heap_size(),msg);
|
||||
|
||||
if(level<=settings.log_level_local){
|
||||
Serial.print(tmp);
|
||||
}
|
||||
if(level<=settings.log_level_remote){
|
||||
add_to_buff(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
void add_to_buff(char *msg){
|
||||
if(strlen(buffer)+strlen(msg)+1>=LOGGER_BUFFER_SIZE){
|
||||
File log=SPIFFS.open("/log.txt","a");
|
||||
log.print(buffer);
|
||||
log.close();
|
||||
buffer[0]=0;
|
||||
logger(3,"Log buffer full, written to SPIFFS");
|
||||
}
|
||||
strcpy(buffer+strlen(buffer),msg);
|
||||
}
|
||||
|
||||
long logger_get_size(){
|
||||
long s=0;
|
||||
File file=SPIFFS.open("/log.txt");
|
||||
s+=file.size();
|
||||
file.close();
|
||||
s+=strlen(buffer);
|
||||
return s;
|
||||
}
|
||||
|
||||
void logger_dump(Print *dest){
|
||||
File file=SPIFFS.open("/log.txt");
|
||||
while(file.available()){
|
||||
dest->write(file.read());
|
||||
}
|
||||
file.close();
|
||||
dest->print(buffer);
|
||||
}
|
||||
|
||||
void logger_clear(){
|
||||
buffer[0]=0;
|
||||
SPIFFS.remove("/log.txt");
|
||||
}
|
13
src/logger.h
Normal file
13
src/logger.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef LOGGER_H
|
||||
#define LOGGER_H
|
||||
|
||||
#include <Arduino.h>
|
||||
#include "filesystem.h"
|
||||
#include "settings.h"
|
||||
|
||||
void logger(byte level, const char* format, ...);
|
||||
long logger_get_size();
|
||||
void logger_clear();
|
||||
void logger_dump(Print *dest);
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user