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
Ankündigung
Einklappen
Keine Ankündigung bisher.
Log je LBS
Einklappen
X
-
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=1Zuletzt geändert von gaert; 21.04.2016, 08:22.
Einen Kommentar schreiben:
-
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)
- Likes 1
Einen Kommentar schreiben:
-
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:
-
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:
-
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:
-
Bidde bidde
Eventuell widme ich mich jetzt noch dem TraceLog (Einstellungen in der INI).
Einen Kommentar schreiben:
-
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.
- Likes 1
Einen Kommentar schreiben:
-
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:
-
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.Zitat von saegefisch Beitrag anzeigen@
und der Aufruf dann ganz schlank und ohne IF z.B. (wenn E4 Dein LogLevel ist)
Aber kein Problem, krieg das durchaus gebacken
Einen Kommentar schreiben:
-
@ Winni: Ich löse das so: In alle LBS eine kleine immer-gleiche Funktion einbauen. Z.B. so:
und der Aufruf dann ganz schlank und ohne IF z.B. (wenn E4 Dein LogLevel ist)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");
}
}
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...PHP-Code:tracelog(3,$E[4]['value'],$id,"SMA","JSON:".$data_json);
Zuletzt geändert von saegefisch; 19.04.2016, 22:25.
Einen Kommentar schreiben:
-
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:
-
if (...) {writeToCustomLog(...);} ist wohl nicht zuviel verlangt
Ist einfach flexibler so - und ich kann mich um wichtigere Dinge kümmern...
Einen Kommentar schreiben:
-
Das sind alles Super Features (die ich eigentlich nicht unbedingt brauche, aber toll finde).Zitat von gaert Beitrag anzeigenVollbracht
Bald gibt's dann die Funktion: writeToCustomLog($logName,$logExpire,$logLevel,$lo gMsg,$separator)
[ATTACH=CONFIG]n940531[/ATTACH]
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:


Einen Kommentar schreiben: