rc.console
console
Dieses Objekt beinhaltet Methoden ähnlich wie das console
Objekt in nodejs, allerdings in ganz einfacher Form (keine Formatierung etc.)
rc.console.error(text)
– Ausgabe mit Level=0 und Serverity=errorrc.console.warn(text)
– Ausgabe mit Level=3 und Serverity=warningrc.console.info(text)
– Ausgabe mit Level=3 und Serverity=informationalrc.console.log(text
) – Ausgabe mit Level=4 und Serverity=successrc.console.debug(text)
– Ausgabe mit Level=5 und Serverity=success
Die obigen Methoden schreiben den Text ins serverseitige enaio® Protokoll (Log-Channel 15 für normale Flow-Protokollierung, bzw. Log-Channel 3 für spezielles v8-Protokoll), und leiten außerdem die Texte an C++ Code, der das Skript ausführt. Der enaio® server kann zusätzlich den Text an einen Http-Server senden. Dieser Http-Server kann per Registry konfiguriert werden (ScriptEngine/V8ConsoleURL), z. B. http://127.0.0.1:8038/v8/console
. Das kann für den Skript-Entwickler beim Debuggen überaus hilfreich sein. An diese URL wird ein POST Request gesendet. Das dabei übertragene JSON entspricht der Form:
{"text":"Input parameter p1 = v1","level":4,"scriptId":4}
scriptId
ist eine fortlaufende Nummer und hat keine besondere Bedeutung. Es ist damit möglich, Messages unterschiedlicher Skripte zu unterscheiden.
Ein Beispiel für so einen Http-Server findet man unter http://ossvn01.optimal-systems.de/svn/blue/as1010/appserver/axsvckrn/script/v8/dbgcon (Anmeldung erforderlich). Die zwei Dateien (index.js + package.json) können in ein beliebiges Verzeichnis kopiert werden, in diesem Verzeichnis npm install
ausführen, die Config-Daten (bzw. auch das Ausgabeformat) in index.js anpassen und den Server per node index.js
starten. Bei Bedarf kann die Ausgabe in eine Datei umgeleitet werden und per BareTail beobachtet werden. Der Http-Server kann z. B. in einem tomcat-Server laufen.
console
Objekt in globalem Scope wird von v8 auch bereitgestellt, seine Methoden haben allerdings keine Auswirkung. Falls die Schreibweise conlose.log
anstatt rc.console.log
unbedingt notwendig ist, kann man am Anfang des Skripts das globale console
Objekt umdefinieren: console = rc.console;