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