Verwendung EasyLogger mit Datei

Hallo,

ich moechte die Lib EasyLogger verwenden
dort kann man mit

#define LOG_OUTPUT Serial

den Port definieren. Ist es Moeglich auch in eine Datei zu schreiben auf meinem littleFS Dateisystem oder gibt es eine andere einfache, schlanke Lib dafuer?

Danke euch

Poste bitte einen Link zur Library.
Welchen Controller verwendest du ?
Wozu brauchst du noch ein Library um es ins LittleFS zu schreiben ?

Du meinst sicher nicht EasyLogger.
Allein da Serial kein open sondern ein begin(Baudrate) verwendet, wirst du Probleme haben.

Außerdem verwendest du LittleFS vermutlich auf einem ESP, richtig?
Das ist doch schon eine einfache Lib. (spiffs wäre etwas schlanker, aber wozu?)

Ich moechte gerne ein Log auf little FS schreriben falls ein Error passiert. aktuell mache ich das manuell. Allerdings wuerde ich gerne eine Lib verwenden, da die meist besser geschrieben sind als meine Programmierversuche

Wenn ich eine gute Lib brauche, schreibe ich mir eine :rofl:(SCNR)

Wo ist dann das Problem ?
Zeige deinen verwendeten Sketch mit allen nötigen Infos hier, und du bekommst sicher Tipps den zu optimieren.

Hallo das ist meine Logging Funktion

#define LOGLEVEL_ERROR 0
#define LOGLEVEL_WARN 1
#define LOGLEVEL_INFO 2
#define LOGLEVEL_DEBUG 3
#define FILEDEBUG 1

#include <LittleFS.h>

int globalLogLevel = LOGLEVEL_INFO;

void logging(int logLevel, String message, bool newLine) {
  String logPrefix = "";

  if (logLevel <= globalLogLevel) {
    switch (logLevel) {
      case LOGLEVEL_ERROR:
        logPrefix = "[ERROR]: ";
        break;
      case LOGLEVEL_WARN:
        logPrefix = "[WARN]: ";
        break;
      case LOGLEVEL_INFO:
        logPrefix = "[INFO]: ";
        break;
      case LOGLEVEL_DEBUG:
        logPrefix = "[DEBUG]: ";
        break;
    }
  }
  if (newLine) {
#ifdef SERIALDEBUG
    Serial.print("\n" + String(millis()) + " " + logPrefix + message);
#endif
#ifdef FILEDEBUG
    if (LittleFS.begin()) {
      File file = LittleFS.open("/log.log", "a");
      file.print("\n" + String(millis()) + " " + logPrefix + message);
      file.close();
    } else {
      #ifdef SERIALDEBUG
      Serial.print("\n" + String(millis()) + " " + "[ERROR]: " + "Filesystem not ready");
#endif
    }
#endif
  } else {
#ifdef SERIALDEBUG
    Serial.print("\n" + String(millis()) + " " + logPrefix + message);
#endif
#ifdef FILEDEBUG
    if (LittleFS.begin()) {
      File file = LittleFS.open("/log.log", "a");
      file.print(message);
      file.close();
    } else {
      #ifdef SERIALDEBUG
      Serial.print("\n" + String(millis()) + " " + "[ERROR]: " + "Filesystem not ready");
#endif
    }
#endif
  }
}

void setup() {
  // put your setup code here, to run once:
logging(1, "test", false);
}

void loop() {
  // put your main code here, to run repeatedly:

}


Bitte den kompletten Sketch posten, nicht nur Fragmente.

Hallo,
in dem kleinen gezeigten Teil gibt es ja eine Compileranweisung mit der das gehen sollte
Vermutlich gibt es ganz am Anfang des Sketches einen Teil wo diese Compiler-Kostanten gesetzt werden können.
Vermutlich findest da eine Zeile

// #define FILEDEBUG 1

die musst Du dann aktivieren in dem Du vorne die beiden // Zeichen wegmachst.
Es kann auch sein das es eine Zeile gibt

#define FILEDEBUG 0

dann aus der 0 eine 1 machen

zusätzlich solltest Du natürlich die LittleFS lib laden

Habe den ganzen bsp sketch aktualisiert

Hallo,
Mmm , und was erwartest Du jetzt von dem Sketch.? Und was macht er ?

Nachtrag
oder willst Du nur dann auf das File schreiben wenn ein Error ansteht ?

Der sketch funktioniert wie gewollt ich wollte nur wissen ob die Funktion so gut geschrieben ist oder nicht oder was falsch bzw. verbessert werden kann darum ging es von Anfang an....

Und warum schreibst Du das dann nicht so ?

Deine Frage war

Ja man kann

Okay gibt's Verbesserungen für die Funktion?

Da würde ich jetzt fragen wollen, warum verbessern ?
Wenn es so funktioniert, sollte es doch gut sein.
Es gibt sicher den einen oder anderen, der hier noch ein paar Bytes rausholen kann.
Ich sehe da aktuell nichts.

Hallo,

ich hab da jetzt noch mal eine ganz doofe Frage. Wozu überhaupt die Compileranweisungen. Was willst du damit erreichen ?

Ich verwende es auch auf einem ESP12 und da ist an serial ein Sensor angeschlossen.
..wenn ich debugge aber nicht deswegen will ich es ein ausschalten können

Dafür den Aufwand ?
Das geht doch auch über eine Code Zeile. Zumindest das schalten.
Und den Sensor kannst du mit SoftwareSerial steuern.

Wie geht es einfacher?

Indem du SoftwareSerial für den Sensor verwendest und die serielle immer aktiv lässt.
Oder für die serielle nur "Serial.begin" deaktivierst.