Ankündigung

Einklappen
Keine Ankündigung bisher.

Log je LBS

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • gaert
    antwortet
    So, nu aber... Aus Platzgründen wird der Dateiname erst per Rechtsklick angezeigt (braucht man ja ohnehin eher nicht zu wissen):

    Bildschirmfoto 2016-04-21 um 10.41.33.png

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Noch eine "kleine" Neuerung für alle Logging-Freunde Hier ein Auszug aus der (neuen) edomi.ini (lustig wird noch das Update der ini-Datei... Viele neue Parameter nebst Beschreibung - und einige alte Parameter fallen weg...):

    # System-Logs
    # 0 = deaktiviert
    # 1 = Text-Format
    # 2 = HTML-Format
    global_logSysEnabled=2

    # Fehler-Logs
    # 0 = deaktiviert
    # 1 = Text-Format
    # 2 = HTML-Format
    global_logErrEnabled=2

    # Trace-Log
    # 0 = deaktiviert
    # 1 = Text-Format
    # 2 = HTML-Format
    global_logTraceEnabled=2

    # Monitor-Logs
    # 0 = deaktiviert (diese Einstellung hat Priorität gegenüber dem System-KO[6])
    # 1 = Text-Format
    # 2 = HTML-Format
    global_logMonEnabled=2

    # Individual-Logs
    # 0 = deaktiviert
    # 1 = Text-Format
    # 2 = HTML-Format
    global_logCustomEnabled=2


    # Separator-Zeichenkette für Text-Format
    # Zeichenkette (oder einzelnes Zeichen) zur Trennung der einzelnen Log-Variabeln
    # Achtung: Erlaubt sind nur lesbare ASCII-Zeichen (z.B. '///'). Nicht erlaubt sind Angaben wie chr(9) oder ähnliches!
    # Wird dieser Parameter leer gelassen (''), wird automatisch das TAB-Zeichen verwendet.
    global_logTextSeparator=''


    # Speicherdauer: System-Logs
    # Das Log wird nach x Tagen ohne Zugriff (Log-Eintrag) automatisch gelöscht.
    # 1..oo = Tage
    global_logSysKeep=7

    # Speicherdauer: Fehler-Logs und Trace-Log
    # Das Log wird nach x Tagen ohne Zugriff (Log-Eintrag) automatisch gelöscht.
    # 1..oo = Tage
    global_logErrKeep=7

    # Speicherdauer: Monitor-Logs
    # Das Log wird nach x Tagen ohne Zugriff (Log-Eintrag) automatisch gelöscht.
    # 1..oo = Tage
    global_logMonKeep=2

    # Speicherdauer: Individual-Logs
    # Das Log wird nach x Tagen ohne Zugriff (Log-Eintrag) automatisch gelöscht.
    # 1..oo = Tage
    global_logCustomKeep=1


    # KNX-Kommunikation detailiert protokollieren
    # Bei Bedarf können detailierte Informationen zur KNX-Kommunikation im Trace-Log bzw. im Fehler-Log protokolliert werden.
    # 0 = deaktiviert
    # 1 = nur Fehler loggen (Fehler-Log)
    # 2 = nur Fehler loggen (Trace-Log)
    # 3 = nur Fehler loggen (Fehler-Log und Trace-Log)
    # 4 = Debug-Modus: gesamte Kommunikation einschließlich Fehlern loggen (Trace-Log)
    global_logTraceLevelKnx=1
    Zuletzt geändert von gaert; 21.04.2016, 08:22.

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Besten Dank für die Blumen! Ich bin nunmal "Perfektionist" (innerhalb meines bescheidenen Universums zumindest) - daher ist das Motto: Richtig oder garnicht. Wobei "richtig" natürlich relativ ist... Und ich bemühe mich immer um eine frisches Denken, d.h. z.B. anstelle schnöder Auflistungen (die niemanden interessieren) versuche ich stets die Praxisrelevanz im Auge zu behalten. Dies gelingt natürlich nicht immer (schon aus Zeitgründen und GUI-Einschränkungen im Browser), aber ich versuche mein Bestes zu geben EDOMI fühlt sich nicht zufällig so schnell an - daher muss ich einigen Wünschen die rote Karte zeigen, denn EDOMI soll kein "zugeballertes" System werden (man denke in diesem Kontext z.B. an die ersten Word-Versionen... 10.000 Icons stapelten sich im Fenster und für das Dokument blieben noch 200px übrig)

    Einen Kommentar schreiben:


  • rdeckard
    antwortet
    Christian, ich muss dir mal ein grosses Lob aussprechen. Auch wenn du manchmal strikt gegen einen Userwunsch bist: lässt du dich dann doch noch erweichen und beginnst (manchmal auch gegen deiner persönlichen Meinung) mit der Umsetzung, so zeigst du eine wirklich bewunderswerte Programmierlust und Detailverliebheit, dass nicht nur einfach eine neue Funktion rauskommt, sondern diese den so typischen Edomi-Style® besitzt. (Wie z.B. jetzt diese Logfunktion, welche weit über die Erwartungen hinausgeht.)

    Auch wenn ich in diesem Fall nicht wirklich etwas vermisst hätte, so staune ich einfach nur, was du dir wieder ausgedenkt hast und freue mich natürlich umso mehr, damit dann arbeiten zu können.

    Wenn du dich wirklich mal in ein Problem reinkniest, dann legst du solch einen Lauf hin, wie ich es bis jetzt selten erlebt habe. Und erstaunlicherweise noch recht fehlerfrei.

    Muss mal zwischendurch gesagt werden! Grosser Respekt!

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Richtig - so handhabe ich das eigentlich auch Aber es schadet ja nicht die Logfunktionen etwas zu erweitern. Die endgültige Version sieht jetzt wie folgt aus - der grüne Balken zeigt nun (exponentiell) die noch verbleibende Zeit, bis das Log automatisch gelöscht wird. Als "Nebeneffekt" erkennt man sofort, ob ein "frischer" Log-Eintrag vorliegt

    Bildschirmfoto 2016-04-20 um 17.41.01.png

    Einen Kommentar schreiben:


  • rdeckard
    antwortet
    Also ich verwende in meinem LBS-Code auch immer nur (fixe) writeToTraceLog-Befehle, welche via E2 getriggert werden. So habe ich während der Entwicklung Log-Einträge, ein User kann dies aber später bei Problemen auch aktivieren, ohne dass am Code etwas geändert werden muss.

    Und im tracelog habe ich dann auch nicht 25 MB Daten, sondern nur MEINE Einträge. (Das global muss natürlich deaktiviert sein.)

    Aber ich begrüsse natürlich jetzt die neue Log-Funktion. Macht es zusätzlich noch bequemer (vorallem zum Auswerten und Löschen). Aber ich fands schon vorher akzeptabel. (Danke an gaert)

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Bidde bidde Eventuell widme ich mich jetzt noch dem TraceLog (Einstellungen in der INI).

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Supercool! Vielen Dank schonmal vorab.

    Einen Kommentar schreiben:


  • gaert
    antwortet
    So, noch schnell ein paar Daten hinzugefügt - nu is aber auch genug

    Der grüne Balken zeigt die "Aktualität" des Logs an (bezogen auf die letzten 24h).

    Bildschirmfoto 2016-04-20 um 08.34.44.png

    Zuletzt geändert von gaert; 20.04.2016, 08:36.

    Einen Kommentar schreiben:


  • saegefisch
    antwortet
    Ich hatte keinen Zweifel, dass Du es gebacken bekommst. Aber manchmal hilft ja ein Snippet als Ideenlager. So eine Lösung ist im Coding optisch schlanker und besser zu lesen, als die vielen IFs. Die haben mich nämlich genau wie Dich gestört...

    Einen Kommentar schreiben:


  • Winni
    antwortet
    Zitat von saegefisch Beitrag anzeigen
    @
    und der Aufruf dann ganz schlank und ohne IF z.B. (wenn E4 Dein LogLevel ist)
    Ist mir schon klar, wollte aber eine additive eigene Funktion vermeiden und bei der Fehlersuche stören mich als Anfänger die vielen IFs einfach. Wieviele Parameter ich einer Funktion übergeben muss / kann ist eher kein Thema.
    Aber kein Problem, krieg das durchaus gebacken

    Einen Kommentar schreiben:


  • saegefisch
    antwortet
    @ Winni: Ich löse das so: In alle LBS eine kleine immer-gleiche Funktion einbauen. Z.B. so:

    PHP-Code:
    function tracelog($lvl_from,$loglevel,$id,$pre,$s) {
    // lvl = LogLevel, ab dem Ausgabe erfolgen soll | loglevel = aktueller LogLevel | pre = PreFix | s = Text
    if ($loglevel >= $lvl_from ) {
    writeToTraceLog(0,true,"LBSLBSID($id$pre$s");
    }

    und der Aufruf dann ganz schlank und ohne IF z.B. (wenn E4 Dein LogLevel ist)

    PHP-Code:
    tracelog(3,$E[4]['value'],$id,"SMA","JSON:".$data_json); 
    Mit der neuen Funktion von Christian kann man's noch differenzierter ausbauen. Und durch die Lösung per Funktion könnte Christian jede Woche neue Log-Möglichkeiten liefern und man müsste nur an einer Stelle ändern...
    Zuletzt geändert von saegefisch; 19.04.2016, 22:25.

    Einen Kommentar schreiben:


  • Stoxn
    antwortet
    Wow, das liest sich schon super - vor allem der Rechtsklick + löschen. Wer hat eigentlich die Anzeige in der Visu bei Fehlern gewünscht?!

    Im Ernst, wenn ich dann mal irgendwann fertig bin, will ich natürlich über Fehler im Log informiert werden (Fehler gibt es dann ja nicht mehr, weil ich ja fertig bin). Da wir alle hier noch wild rumexperimentieren, machen diese Erweiterungen total Sinn und ich freue mich schon drauf. Der Enduser wird das sicher nicht brauchen, aber die meisten sind hier eher Poweruser.

    Danke jetzt schon für das Update!

    Einen Kommentar schreiben:


  • gaert
    antwortet
    if (...) {writeToCustomLog(...);} ist wohl nicht zuviel verlangt Ist einfach flexibler so - und ich kann mich um wichtigere Dinge kümmern...

    Einen Kommentar schreiben:


  • Winni
    antwortet
    Zitat von gaert Beitrag anzeigen
    Vollbracht

    Bald gibt's dann die Funktion: writeToCustomLog($logName,$logExpire,$logLevel,$lo gMsg,$separator)

    [ATTACH=CONFIG]n940531[/ATTACH]
    Das sind alles Super Features (die ich eigentlich nicht unbedingt brauche, aber toll finde).
    Wenn ich das aber nutzen will, geht mir eigentlich ein Parameter ab: Ich würde mir die leidigen IFs eigentlich gerne sparen und der Funktion direkt mitgeben wollen, ob ein Log-Eintrag ausgegeben werden soll, oder nicht, also einfach einen Boolean additiv. Ich könnte dann einfach ein Debug-Flag, einen Vergleich Debuglevel - Errorlevel absolut oder bitweise implementieren, dass kann ja dann jeder selber entscheiden. Kann ja durchaus optional sein.

    Winni

    Einen Kommentar schreiben:

Lädt...
X