NEWS
[Frage an ioBroker System-Insider] Log-Bereich im Admin - wie wird der Stream abgegriffen?
-
Hi,
ich hab vor mehreren Monaten das Script https://forum.iobroker.net/viewtopic.php?f=21&t=15514 veröffentlicht.
Hierbei lese ich regelmäßig die Log-Datei auf dem Server aus (/opt/iobroker/log/) und filtere diese entsprechend.
Problem ist dabei, dass ich hier immer die komplette Log-Datei anfasse, und wenn diese wegen vielen Logeinträgen pro Tag stark wächst (so bei einigen MBs), dann schmiert der ioBroker ab.
Ich würde daher gerne direkt den Stream abgreifen, also wie das auch im ioBroker Admin wohl gemacht wird (siehe Info https://forum.iobroker.net/viewtopic.php?f=21&t=15514&start=40#p187878).
Könnt Ihr mir bitte einen Hinweis geben, in welcher ioBroker-Datei sich der Code hierfür befindet bzw. wie man hier ansetzen könnte?
Ich plane nämlich, hier einen Adapter zu erstellen, aber dafür müsste ich das erst mal so gelöst bekommen.
Klar könnte ich die Logfile-Größe abfragen und bei größer x MB einfach nichts mehr machen, aber das würde nur das Symptom bekämpfen…
Danke,
Mic
-
Oder du baust einen log-rotate ein und arbeitest eines nach dem anderen ab
-
Einerseits gibt es auf npm libraries die so wie ein tail arbeiten, das wäre eine Option.
Ansonsten schau mal in die Infos hier https://github.com/frankjoke/ioBroker.s … o/issues/5 ... da ist der Link wie ein Adapter an die Logs kommt
-
PS: Ich schiebe das mal ins Entwickler-Forum
-
Danke für Eure Antworten!
@apollon77: Du referenzierst wohl den Log Transporter vom Bluefox:
` > Log transporterThere is a special type of adapters, that consume logs. Normally all adapters write their messages into the log file with logger. But some adapters must to show logs or to store them something else.
To create such a type of adapter it must have logTransport flag in common structure.
If such a flag is present, the adapter.js creates automatically the special state for it - "system.adapter.adapterName.X.logging". This variable must be set by logTransport adapter to true, when this adapter wants to receive logs. `
Das klingt aber für mich so, als dass dann nur Adapter ausgewertet werden, aber nicht sonstige Log-Meldungen wie z.B. von JavaScript-Adapter…
Ich will aber auch für die User die restlichen Logs auswerten, bin mir daher nicht sicher, ob das der richtige Weg ist....
P.S. muss mich korrigieren, ist wohl wirklich für Adapter gedacht, also wohl ein guter Lösungsansatz, danke!!
-
Admin nutzt genau diesen mechanismus um den Log Tab anzuzeigen. Also wenn, ist das "the only way to go" neben Logfiles zu parsen
-
Vielen Dank apollon77, das hat sich grad überschnitten und ich hatte mein "P.S." ergänzt, alles gut, ich denke dass ich diesen Weg gehen werde, und Bluefox hat es schön mit der Grafik erklärt.
-
Viel Erfolg und melde dich jederzeit wenn Du Unterstützung brauchst!