Tip: Firebug-Konsole zum Loggen aus SSP heraus

Begonnen von ahe, Oktober 13, 2009, 08:55:10

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

ahe

Hallo,

in SSP sind Log-Ausgaben oft die einzige Möglichkeit Fehler in eigenen Scripten zu suchen
und Abläufe in grösseren Funktionen und Modulen zu analysieren.
Hierzu dient zb die Funktion ssp::trace(), welche die Logausgabe in die shoplog.txt schreibt.

Eine bequeme Alternative bietet das Firefox-Addon "Firebug".
Firebug bietet eine in den Browser integrierte Log-Konsole, die relativ einfach auch in SSP benutzt werden kann, ohne sämtliche HTML-Vorlagen anpassen zu müssen.
Der entscheidende Vorteil zur shoplog.txt: Es braucht nicht jedesmal die Log-Datei geöffnet werden und zum Dateiende gescrollt zu werden um die letzten Ausgaben zu betrachten. Nach dem Seitenaufbau im Browser ist sind die zu loggenden Texte automatisch in der Konsole sichtbar.

Einbau:

1.) Firebug installieren (https://addons.mozilla.org/de/firefox/addon/1843)
2.) Die angehange Datei entpacken (zb im Unterordner scripts des Projektes)
3.) Die Datei in die stdall.ipl einbinden und die unten aufgeführte Funktion definieren (oder anpassen falls schon vorhanden)

<!--spmacro:include(scripts/debug.ipl)-->

<!--spmacro:module(ShopControl)
sub printateob {
    ## Auslesen der zu loggenden Zeilen
    my @dbg = debug::get();
    if (scalar(@dbg)) {
        ## Ausgeben der Zeilen in der Firebug-Konsole
        my $out = qq|<script type="text/javascript">\nif (window.console !== undefined) {\n |;
        foreach my $line (@dbg) {
            $line =~ s/"/'/g;
            $out .= qq|console.log("$line");\n|;
        }
        $out .= qq|}\n</script>|;
        main::mprint($out);
    }
}
-->

4.) Das Loggen kann dann über die Funktion debug::log() durchgeführt werden, zb:

<!--spmacro:module(test)
sub funktion {
    my $index = shift;
    my $max = shift;
   
    if ($index <= $max) {
        my $i = ssp::get_var_article("itemid", $index);
        my $p = ssp::get_var_article("preis", $index);
        debug::log("[test::funktion] index=$index, max=$max, artikel=$i, preis=$p");
    }
}
-->



   
MfG ahe

dobra

für alle, die Fehler in eigenen Scripten selber suchen und finden wollen um daraus zu lernen ein ideales Werkzeug als Ergänzung zu Firebug.
Seit heute weiß ich das erst richtig zu schätzen und möchte es nicht mehr vermissen 8)

Danke ahe für dieses Tool !!!
mfG
dobra