NEWS
[Vorlage] JS: Log-Datei aufbereiten für VIS
-
@Negalein
Das obige Script von dir wirft im JS-Adapter zahlreiche Fehler, siehe rote Markierungen rechts.
So sieht das von Github aus:
Am besten startest du noch mal mit dem aktuellen Github-Script.
-
@Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Am besten startest du noch mal mit dem aktuellen Github-Script.
jetzt passt es.
DP wurden sofort angelegt. -
@Mic Absolut genial gemacht! Sogar für Anfänger wie mich alles zu verstehen ... läuft auf anhieb!!!
-
@Mic
Das Skript läuft wie immer super, solange ich mindestens eine VIS View angebe.
Ändere ich den Wert "const NUMBER_OF_VIS_VIEWS = 1;" auf 0, erhalte ich im LOG folgende Fehler:javascript.0 2020-02-13 12:02:44.106 error (10714) at process._tickCallback (internal/process/next_tick.js:68:7) javascript.0 2020-02-13 12:02:44.106 error (10714) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49) javascript.0 2020-02-13 12:02:44.105 error (10714) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23) javascript.0 2020-02-13 12:02:44.105 error (10714) at client.set.err (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:534:55) javascript.0 2020-02-13 12:02:44.105 error (10714) at err (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:318:38) javascript.0 2020-02-13 12:02:44.105 error (10714) at Object.<anonymous> (script.js.common.02_IO-Broker.Logfile:1708:44) javascript.0 2020-02-13 12:02:44.105 error (10714) at script.js.common.02_IO-Broker.Logfile:421:9 javascript.0 2020-02-13 12:02:44.104 error (10714) at createUserStates (script.js.common.02_IO-Broker.Logfile:1629:43) javascript.0 2020-02-13 12:02:44.103 error (10714) Error in callback: TypeError: Cannot read property 'replace' of undefined
Die Zeilen 1627 bis 1633 enthalten folgenden Code:
// Add "where" to STATES_TO_CREATE for (let i = 0; i < statesToCreate.length; i++) { let lpPath = statesToCreate[i][0].replace(/\.*\./g, '.'); // replace all multiple dots like '..', '...' with a single '.' lpPath = lpPath.replace(/^((javascript\.([1-9][0-9]|[0-9])\.)|0_userdata\.0\.)/,'') // remove any javascript.x. / 0_userdata.0. from beginning lpPath = where + '.' + lpPath; // add where to beginning of string statesToCreate[i][0] = lpPath; }
Das soll nur als Hinweis dienen, da das Skript ja für die VIS Aufbereitung gedacht ist und somit mindestens eine VIS View vorhanden sein sollte.
-
@blackeagle998 sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Das soll nur als Hinweis dienen
Vielen Dank für den Test. Habe ich in Version 4.7 korrigiert. Für ein Update reicht es, alles unterhalb des folgenden Kommentars zu ersetzen:
/************************************************************************************************************************* * Ab hier nichts mehr ändern / Stop editing here! *************************************************************************************************************************/
-
ich hab im Log folgende Fehlermeldungen:
2020-02-14 20:06:16.407 - error: rtspStream.0 (14568) uncaught exception: i is not defined 2020-02-14 20:06:16.408 - error: rtspStream.0 (14568) ReferenceError: i is not defined 2020-02-14 20:06:17.452 - error: host.Pi4-Server Caught by controller[43]: frame=95046 fps= 15 q=6.1 size= 315696kB time=01:45:32.56 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.452 - error: host.Pi4-Server Caught by controller[44]: frame=95054 fps= 15 q=3.9 size= 315727kB time=01:45:33.06 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.452 - error: host.Pi4-Server Caught by controller[45]: frame=95061 fps= 15 q=4.7 size= 315740kB time=01:45:33.64 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.452 - error: host.Pi4-Server Caught by controller[46]: frame=95069 fps= 15 q=5.0 size= 315772kB time=01:45:34.07 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.453 - error: host.Pi4-Server Caught by controller[47]: frame=95076 fps= 15 q=4.7 size= 315785kB time=01:45:34.65 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.453 - error: host.Pi4-Server Caught by controller[48]: frame=95084 fps= 15 q=4.6 size= 315819kB time=01:45:35.15 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.453 - error: host.Pi4-Server Caught by controller[49]: frame=95092 fps= 15 q=5.7 size= 315848kB time=01:45:35.66 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.453 - error: host.Pi4-Server Caught by controller[50]: frame=95100 fps= 15 q=4.7 size= 315864kB time=01:45:36.16 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.453 - error: host.Pi4-Server Caught by controller[51]: frame=95108 fps= 15 q=4.6 size= 315900kB time=01:45:36.66 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.453 - error: host.Pi4-Server Caught by controller[52]: frame=95115 fps= 15 q=5.0 size= 315932kB time=01:45:37.24 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.454 - error: host.Pi4-Server Caught by controller[53]: frame=95123 fps= 15 q=4.2 size= 315949kB time=01:45:37.74 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.454 - error: host.Pi4-Server Caught by controller[54]: frame=95131 fps= 15 q=4.7 size= 315975kB time=01:45:38.25 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.454 - error: host.Pi4-Server Caught by controller[55]: frame=95139 fps= 15 q=4.6 size= 316009kB time=01:45:38.75 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.465 - error: host.Pi4-Server Caught by controller[56]: frame=95146 fps= 15 q=6.0 size= 316021kB time=01:45:39.26 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.465 - error: host.Pi4-Server Caught by controller[57]: frame=95154 fps= 15 q=4.8 size= 316056kB time=01:45:39.76 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.465 - error: host.Pi4-Server Caught by controller[58]: frame=95162 fps= 15 q=3.6 size= 316087kB time=01:45:40.26 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.465 - error: host.Pi4-Server Caught by controller[59]: ReferenceError: i is not defined 2020-02-14 20:06:17.465 - error: host.Pi4-Server Caught by controller[59]: at WebSocketServer.wsServer.broadcast (/opt/iobroker/node_modules/node-rtsp-stream/videoStream.js:103:54) 2020-02-14 20:06:17.466 - error: host.Pi4-Server Caught by controller[59]: at VideoStream.on (/opt/iobroker/node_modules/node-rtsp-stream/videoStream.js:109:26) 2020-02-14 20:06:17.466 - error: host.Pi4-Server Caught by controller[59]: at VideoStream.emit (events.js:198:13) 2020-02-14 20:06:17.466 - error: host.Pi4-Server Caught by controller[59]: at Mpeg1Muxer.mpeg1Muxer.on (/opt/iobroker/node_modules/node-rtsp-stream/videoStream.js:47:17) 2020-02-14 20:06:17.466 - error: host.Pi4-Server Caught by controller[59]: at Mpeg1Muxer.emit (events.js:198:13) 2020-02-14 20:06:17.466 - error: host.Pi4-Server Caught by controller[59]: at Socket.Mpeg1Muxer.stream.stdout.on (/opt/iobroker/node_modules/node-rtsp-stream/mpeg1muxer.js:39:17) 2020-02-14 20:06:17.467 - error: host.Pi4-Server Caught by controller[59]: at Socket.emit (events.js:198:13) 2020-02-14 20:06:17.467 - error: host.Pi4-Server Caught by controller[59]: at addChunk (_stream_readable.js:288:12) 2020-02-14 20:06:17.467 - error: host.Pi4-Server Caught by controller[59]: at readableAddChunk (_stream_readable.js:269:11) 2020-02-14 20:06:17.467 - error: host.Pi4-Server Caught by controller[59]: at Socket.Readable.push (_stream_readable.js:224:10) 2020-02-14 20:06:17.467 - error: host.Pi4-Server Caught by controller[59]: frame=95169 fps= 15 q=4.4 size= 316101kB time=01:45:40.84 bitrate= 408.4kbits/s speed= 1x 2020-02-14 20:06:17.467 - error: host.Pi4-Server Caught by controller[60]: frame=95177 fps= 15 q=5.3 size= 316135kB time=01:45:41.34 bitrate= 408.4kbits/s speed= 1x
Es wird mir im DP error aber nichts angezeigt. Ich habe auch nichts deratiges in der blacklist. Hast du eine Erklärung dafür?
-
Teste mal mit dem Skript von Mic , hast du dort eine Log Ausgabe ?
log('Error-Meldung', 'error'); log('Warn-Meldung', 'warn'); // Nochmal nach 2 Sekunden. setTimeout(function() { log('Error-Meldung', 'error'); log('Warn-Meldung', 'warn'); }, 2*1000); // Nach 30 Sekunden noch eine Warnmeldung. setTimeout(function() { log('Neue Warn-Meldung nach 30 Sekunden', 'warn'); }, 30*1000);
-
@Glasfaser ja, die Meldungen kommen. Liegt wohl an der Art und Weise wie rtspstream die Fehler generiert.
Danke dir für die Unterstützung! -
Habe mal ein Fehler simuliert .... rtspstream wird im LOG angezeigt
Zeig doch mal deine Usereinstellung , für die ERROR Filterung.
-
@Glasfaser
mein Block error sieht folgendermaßen aus:{ id: 'error', filter_all: [' - error:', ''], // nur Logeinträge mit Level 'error' filter_any: [''], blacklist: ['', '', ''], clean: ['', '', ''], merge: true, sortDescending: true, jsonColumns: ['date','level','source','msg'], jsonDateFormat: 'dd.mm. hh:mm', jsonLogLength: 200, jsonMaxLines: 60, jsonCssToLevel: true, }
Kannst du das bitte mal mit deinem Block vergleichen?
-
@Latzi sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Füge mal das ein :
{ id: 'error', filter_all: [' - error: ', ''], // nur Logeinträge mit Level 'error' filter_any: [''], blacklist: ['', '', ''], clean: ['', '', ''], merge: true, sortDescending: true, jsonColumns: ['date','level','source','msg'], jsonDateFormat: 'dd.mm. hh:mm', jsonLogLength: 200, jsonMaxLines: 60, jsonCssToLevel: true, }
-
@Glasfaser ändert leider nichts
-
Mhhh , habe gerade nochmal verglichen , dachte es hatte einfluss das nach dem - error: ein Leerzeichen fehlte ...
Kann du den Error im Datenpunkt log sehen ?
-
@Glasfaser nein, ist darin nicht enthalten
-
Da bin gerade überfragt ….. mehr kann ich dir im Moment leider nicht weiterhelfen , da ich gerade ein großes ? dazu habe …
Warte auf Mic
-
@Glasfaser vielen Dank für deine Mühe
-
@Latzi sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
ich hab im Log folgende Fehlermeldungen:
2020-02-14 20:06:16.407 - error: rtspStream.0 (14568) uncaught exception: i is not defined 2020-02-14 20:06:16.408 - error: rtspStream.0 (14568) ReferenceError: i is not defined 2020-02-14 20:06:17.452 - error: host.Pi4-Server Caught by controller[43]: frame=95046 fps= 15 q=6.1 size= 315696kB time=01:45:32.56 bitrate= 408.4kbits/s speed= 1x (...)
Es wird mir im DP error aber nichts angezeigt. Ich habe auch nichts deratiges in der blacklist. Hast du eine Erklärung dafür?
Bitte ersetze mal folgende Zeile im Script:
const LOG_PATT = '([0-9_.\\-:\\s]*)(\\s+\\- )(silly|debug|info|warn|error|)(: )([a-z0-9.\\-]*)(\\s)(.*)';
Durch:
const LOG_PATT = '([0-9_.\\-:\\s]*)(\\s+\\- )(silly|debug|info|warn|error|)(: )([^\\s]*)(\\s)(.*)';
-
@Mic sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
const LOG_PATT = '([0-9_.\-:\s])(\s+\- )(silly|debug|info|warn|error|)(: )([^\s])(\s)(.*)';
@Mic Applaus, Applaus
Jetzt kommen auch die Meldungen vom rtspStream durch (es waren nicht nur die error-Meldungen, eigentlich waren alle Typen betroffen).
Muss ich diese Zeile für spätere Versionen sichern oder baust du es allgemein im Script ein? -
@Latzi
Gern geschehen@Latzi sagte in [Vorlage] JS: Log-Datei aufbereiten für VIS:
Muss ich diese Zeile für spätere Versionen sichern oder baust du es allgemein im Script ein?
Baue ich ins Script ein, Update folgt sehr bald.
-
Neue Log-Script-Version 4.8
Neuerungen:
* + Allow regular expressions in BLACKLIST_GLOBAL * + Allow regular expressions in LOG_FILTER: 'blacklist', 'clean', 'filter_all', 'filter_any' * - Fix: Log line regex, which did not allow upper case letters in host (source)
Das heißt, es werden nun auch Regular Expressions unterstützt.
Um also etwa Einträge wie z.B.
script.js.System.-_Log-Script: registered 8 subscriptions and 1 schedule script.js.System.Backup: registered 0 subscriptions and 0 schedules script.js.System.Test: registered 3 subscriptions and 2 schedules
allesamt zu eliminieren, kann man einfach in
BLACKLIST_GLOBAL
eintragen:/registered [0-9]+ subscriptions and [0-9]+ schedules/
Oder um sämtliche
script.js.System.XXXXXXXXXX:
herauszuschneiden aus den Logzeilen, trägt man inLOG_FILTER
unterclean
folgendes ein:/script\.js\.[^:]*: /
Weitere Beispiele sind im Script selbst. Viel Spaß damit.
Um eigene Regex zu erstellen, eignet sich https://regex101.com/ gut.
Hier das aktuelle Script wie immer: https://github.com/Mic-M/iobroker.logfile-script
Zum Update von der Vorversion: Einfach alles unterhalb von hier ersetzen:
/************************************************************************************************************************* * Ab hier nichts mehr ändern / Stop editing here! *************************************************************************************************************************/