NEWS
Frage zu Funktion onLog
-
Ich möchte mittels der Funktion onLog das tägliche Log überwachen und bei Auftreten von bestimmten Fehlern bzw. Warnung mich per Telegram informieren lassen. Dazu wurden erst mal Testfunktionen erstellt.
onLog('error', async (data) => { log('Ereignis neuer Fehler in Log aufgetreten.'); }); onLog('warn', data => { console.info('Ereignis neue Warnung in Log aufgetreten.'); });
Die Eine ist mit async, da dies bei Blockly so verwendet wird.
Bei den Test stellt sich heraus, dass nicht bei jedem Fehler oder Warnung ein Funktionsaufruf erfolgt.
Beispiel: Früh habe ich im Log öfters Fehler/Warnung von Telegram. Die werden erkannt. Die Warnung etwas später vom Adapter weatherunderground, löst kein Ereignis aus.2024-08-14 05:17:52.877 - warn: telegram.0 (729) polling_error: ETELEGRAM, ETELEGRAM: 502 Bad Gateway 2024-08-14 05:17:52.914 - info: javascript.0 (718) script.js.System: Ereignis neue Warnung in Log aufgetreten. 2024-08-14 05:17:52.945 - error: telegram.0 (729) getMe (reconnect #0) Error:Error: ETELEGRAM: 502 Bad Gateway 2024-08-14 05:17:52.948 - info: javascript.0 (718) script.js.System: Ereignis neuer Fehler in Log aufgetreten. 2024-08-14 05:18:21.847 - info: telegram.0 (729) getMe (reconnect): Success 2024-08-14 07:38:19.978 - warn: weatherunderground.1 (7317) get state error: Connection is closed. 2024-08-14 09:12:06.954 - info: admin.0 (1834) ==> Connected system.user.admin from
Hat jemand dazu eine Idee oder Hinweis?
-
@pk68 https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#onlog
Versuch mal
onLog('*', data => { console.error('Error: ' + data.message); // will produce no logs });
-
@mcu
Echt jetzt? Was da rauskommt, steht doch in der verlinkten Doku:"To receive all logs the * could be used. In this case, the log output in handler will be disabled completely."
Wenn man auf alle Logeinträge triggert ('*') und dann einen Fehler ins Log schreibt, produziert man eine Endlosschleife. Um dies zu verhindern, wird das Schreiben ins Log deaktiviert. Also console.error wird nicht ausgeführt. Oder?