[dss-developer] Script debugging

Sebastian Scholz digitalstrom at sunshine-studios.org
Fri Apr 29 22:35:18 CEST 2011


Hallo Dieter

>> Wenn sich doch mal ein Fehler eingeschlichen haben sollte, zeigt der dSS
>> dies in seiner Logdatei an (/var/log/dss/dss.log auf dem dSS11).
>> Dazu ein kurzes Beispiel. Ich habe die Datei
>> /usr/share/dss/add-ons/myapp/myapp.js um die Zeile "var myEvent = new
>> Event();" erweitert. Natürlich ist die Syntax falsch. In der Logdatei
>> steht nach dem Ausführen des Scripts:
>>
>> [2011-04-28 22:21:40][Error][System] JS: event_construct: (empty name)
>> [2011-04-28 22:21:40][Error][System]
>> EventInterpreterPluginJavascript::handleEvent:Caught event while
>> running/parsing script '/usr/share/dss/add-ons/myapp/myapp.js'. Message:
>> Error executing script
>>
>> Das hilft beim Eingrenzen des Fehlers recht gut weiter.
> 
> Diese Einträge erscheinen bei mir nicht (habe den Fehler nachgestellt)
> Muss ich vielleicht den Log-Level verändern? Wenn ja, wie?

Ich habe bei mir den Loglevel nicht geändert. Prinzipiell könnte man ihn
aber auf dem dSS11 in der Datei /etc/runit/dss/run ändern. Dort wird für
jedes Subsystem der Loglevel angegeben.

Bist du sicher, dass der fehlerhafte Code auch wirklich ausgeführt wird?
Die komplette Datei sollte so aussehen:

var LOGFILE_NAME = "myapp.log";
var l = new Logger(LOGFILE_NAME);

if (raisedEvent.name == "myapp.sayHello")
{
        l.logln('myapp started');
        l.logln('The message is: ' + raisedEvent.parameter.message);
        var myEvent = new Event();
}

Natürlich muss man das Event myapp.sayHello noch auslösen (z.B. in der
Weboberfläche auf die Schaltfläche "Event auslösen" klicken) bevor die
Fehlermeldung im Log (in "/var/log/dss/dss.log") erscheint.

Gruss
Sebastian


More information about the dss-developer mailing list