NEWS
[Vorlage] JS: Log-Datei aufbereiten für VIS
-
@Stormbringer dann machst du zwei subscribes. Einen pro loglevel und sortierst dann dort in der Funktion nach
if msg.origin == „javscript.1“
-
@apollon77 Sorry ohne Blockly bin ich aufgeschmissen
so?
onLog('error', msg.origin =="javascript.1" { sendTo('telegram.0', {user: 'UserName', text: data.message}); console.log('Following was sent to telegram: ' + data.message); });
-
@apollon77 sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
An die Interessenten hier ... Schaut Euch mal die JavaScript GitHub-Version an ... https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#onlog
Cool, danke Ist eine neue Funktion des js-Controllers, oder? Damit kann ich das Script sehr stark verschlanken.
@Alle:
Ich habe hier gerade mit dem neuen js-Controller Probleme mit Log-Ausgaben überhaupt (auch ohne dem Script hier), muss erst mal abwarten wie ich das gelöst bekomme (Link). -
-
@Mic Feature mit dem log subscribe ist vom JavaScript Adapter. Controller hat damit nichts zu tun.
-
@Nashra sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Seit zwei, drei Tagen habe ich folgendes Problem. Das Cript läuft, alles ok.
Um 23:59 Eintrag im Log das es aktualisert hat und dann steht im neuen Log2019-10-08 00:00:00.121 - error: javascript.0 script.js.Meine_Geräte.VIS-Logs: monitorLogChanges not executed as starting new Tailing Process was not successful 2019-10-08 00:00:00.130 - info: javascript.0 script.js.Meine_Geräte.VIS-Logs: Start new Tail process. File path to current log: [/opt/iobroker/log/iobroker.2019-10-08.log]
und dann ist Schluß d.h. das Script wird nicht mehr ausgeführt und in VIS tut sich auch nichts mehr mit
neuen Einträgen. Erst wenn ich es neu starte kommen wieder Daten in VIS.
Irgendwie stehe ich auf dem Schlauch bzw. kann mir nicht erklären woran dies liegen könnte.
Hat das vllt hier auch schon mal jemand gehabt.Habe das selbe Problem. Bis zum Tageswechsel läuft alles, danach muss man das Script anhalten und neu starten damit es läuft.
Ebenso bekomme ich es nicht hin das ganze "schön" in einer Tabelle anzeigen zu lassen. Kann noch mal jemand ein paar Infos dazu geben wie das am besten gemacht wird ?
-
@ralalla bei mir läuft es bisher noch ohne Probleme, auch nach dem update von java keine Fehler.
Habe, allerdings das Skript im original Zustand und lass mir damit nur die allgemeinen warn/error anzeigen. -
Neue Version 3.0 Alpha: Tester gesucht
Der JavaScript-Adapter in der Latest-Version 4.3.0 bietet die neuen Funktionen onLog() und onLogUnregister().
Damit ist eine deutliche Vereinfachung des Scripts möglich. Vielen Dank an @apollon77 für den Hinweis oben!Es ist nun auch nicht mehr notwendig, node-tail zu nutzen.
Außerdem sollte sich das "Mitternachts-Problem" mancher User damit gelöst haben.
Ebenso erwarte ich hiermit eine deutliche Performanceverbesserung.Würde mich freuen, wenn ihr die neue Version testet.
Hier ist die Test-Version verfügbar: https://github.com/Mic-M/iobroker.logfile-script/blob/master/tester/iobroker_logfile-script_3.0_alpha.jsWICHTIG: Ihr müsst die JavaScript-Adapter-Version 4.3.0 oder höher nutzen (im Latest verfügbar).
Hinweis zum Upgrade von Version 2.0.2: Einfach alles unterhalb von "Ab hier nichts mehr ändern / Stop editing here!" ersetzen.
Vielen Dank fürs Testen. Ich freue mich auf Euer Feedback.
-
@Mic bevor ichs skript starte.... muss die Ordnerstruktur vorher gelöscht werden im Objektbaum?
-
Habs bei mir am Laufen, sieht gut aus!
Vielleicht noch was für zukünftige Releases:
Ein Schalter für das Ein-/Ausschalten der PID im Log:
-
@crunchip sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@Mic bevor ichs skript starte.... muss die Ordnerstruktur vorher gelöscht werden im Objektbaum?
Sollte tatsächlich auch ohne Löschung gehen, kannst du mal ohne Löschen probieren, und bei Problemen bitte Script stoppen, löschen, und dann starten.
-
@Mic ok, ich teste
-
@darkiop sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Vielleicht noch was für zukünftige Releases:
Ein Schalter für das Ein-/Ausschalten der PID im Log:Danke fürs Testen! Sehr guter Hinweis, hab ich schon auf dem Schirm
-
Notiz an mich: PID ausschalten, würde so gehen:
// 2. Newer JavaScript adapter (version 4.3+) adds a 5(?) digit number inside brackets to the beginning of the message. We remove it here. // We cover 3-6 digits, just in case. let regexJsId = /^\([0-9]{3,6}\)\s/ mMessage = mMessage.replace(regexJsId, '');
Muss mal sehen, welche Anzahl an Stellen hier möglich sind, um das sauber einzubauen.
-
Die Funktion gab es aber mit dem neuen js-controller 2.0
-
@Mic kein Fehler, musste nichts löschen
läuft und Anzeige wie bei Version zu vor
hatte ja auch da keine Probleme -
@darkiop sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Die Funktion gab es aber mit dem neuen js-controller 2.0
Interessant, ich hatte beide quasi zeitgleich aktualisiert, daher blicke ich gar nicht mehr, was für die Änderungen sorgte Danke für die Info.
@crunchip sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@Mic kein Fehler, musste nichts löschen
läuft und Anzeige wie bei Version zu vor
hatte ja auch da keine ProblemeSuper, danke für dein Feedback.
Dann lassen wir das mal so laufen. Mitternacht sollte auch kein Problem mehr bei den Usern sein, da dies jetzt von ioBroker übernommen wird und ich muss keine neue Datei mehr durch das Script erzeugen lassen.
-
@Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Interessant, ich hatte beide quasi zeitgleich aktualisiert, daher blicke ich gar nicht mehr, was für die Änderungen sorgte Danke für die Info.
Weis das auch nur weil ich Ingo fragte - war die ganze Zeit am Testen des 2.0 und irgendwann ist mir das (PID) aufgefallen JavaScript Adapter kam erst später dran.
-
Neue Version 3.1
Da die Tests erfolgreich waren, habe ich nun das Script der Version 3.0 Alpha in eine "Stable Version" gehievt.
Dazu kommt eine neue Option
REMOVE_PID
:// Der js-Controller Version 2.0 oder größer fügt Logs teils vorne die PID in Klammern hinzu, // also z.B. "(12234) Terminated (15): Without reason". // Mit dieser Option lassen sich die PIDs aus den Logzeilen entfernen. const REMOVE_PID = true;
Download: Script Version 3.1
WICHTIG: Ihr müsst die JavaScript-Adapter-Version 4.3.0 oder höher nutzen (im Latest verfügbar).
Für die eiligen Umsteiger von Version 2.0.2 oder 3.0 Alpha:
- Alles unterhalb von "Ab hier nichts mehr ändern / Stop editing here!" ersetzen.
- Folgende Zeile oben hinzufügen, in Zeile 1 des Scripts:
const REMOVE_PID = true;
- Bestehende Datenpunkte müsst ihr nicht löschen.
Für die geduldigen Umsteiger von Version 2.0.2 oder 3.0 Alpha:
Ich empfehle, dass ihr frisch startet und nur die jeweiligen Optionen aktualisiert. Damit habt ihr auch die ganze Historie des Scripts etc. sowie die Erklärungen aktuell. Dauert wohl nicht länger als 3-4 Minuten. -
@ralalla sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
@Nashra sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Seit zwei, drei Tagen habe ich folgendes Problem. Das Cript läuft, alles ok.
Um 23:59 Eintrag im Log das es aktualisert hat und dann steht im neuen Log2019-10-08 00:00:00.121 - error: javascript.0 script.js.Meine_Geräte.VIS-Logs: monitorLogChanges not executed as starting new Tailing Process was not successful 2019-10-08 00:00:00.130 - info: javascript.0 script.js.Meine_Geräte.VIS-Logs: Start new Tail process. File path to current log: [/opt/iobroker/log/iobroker.2019-10-08.log]
und dann ist Schluß d.h. das Script wird nicht mehr ausgeführt und in VIS tut sich auch nichts mehr mit
neuen Einträgen. Erst wenn ich es neu starte kommen wieder Daten in VIS.
Irgendwie stehe ich auf dem Schlauch bzw. kann mir nicht erklären woran dies liegen könnte.
Hat das vllt hier auch schon mal jemand gehabt.Habe das selbe Problem. Bis zum Tageswechsel läuft alles, danach muss man das Script anhalten und neu starten damit es läuft.
Ebenso bekomme ich es nicht hin das ganze "schön" in einer Tabelle anzeigen zu lassen. Kann noch mal jemand ein paar Infos dazu geben wie das am besten gemacht wird ?
Hab das selbe Problem.