Samstag, 22. März 2008

Javascript Logging mit dem Firefox-Plugin Firebug

Zum Programmieren mit Javascript ist Firefox mit dem Plugin Firebug zum schnellen Auffinden von z.B. Definitions-Fehlern ein sehr nützliches Entwicklungswerkzeug. Es zeichnet sich besonders durch das Binding von Grafik- und Codedarstellung und die intuitiven Bedienung aus.

Sehr wichtig sind für eine gute Laufzeitumgebung, neben einem effizienten Deployment, auch die jeweiligen Logging - Mechanismen: Hierfür gibt es die ausgefeilten und weitestgehend symmetrisch anwendbaren Log4 {J / JS / NET / PLSQL ..}, d.h. mit Log4JS besteht auch diese Möglichkeit für Javascript.

Bei der Erstellung von Google Maps Anwendungen habe ich aber den Google Logger schätzen gelernt. Hierbei wird nur :


..
GLog.write(point+ " / " + address + " / " + type );
..

aufgerufen - einfach und gut (übrigens ohne Initialisierung!):



Nun gibt es aber speziell für den Firebug recht ausgefeilte Möglichkeiten zum Logging, nachfolgendes Beispiel zeigt einen Leistungsausschnitt:
  
..
function foo(s) {
bar(s + ' jkl;');
}
function bar(s) {
baz('qwerty ' + s);
}
function baz(s) {
// print stack trace
console.trace();
}
function fib(n) {
// count # of times called
console.count('Number of times fib() called');
if(n == 0 || n == 1) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
..
// 5 logging methods
console.log ('Using console.log()');
console.info ('Using console.info()');
console.debug('Using console.debug()');
console.warn ('Using console.warn()');
console.error('Using console.error()');

// printf style formatting
console.log('The value of %s is %d', 'foo', 516);

// can print complex structures
var array = [1, 1, 2, 3, 5, 8];
var object = {'foo': true, 'bar': 3.14, 'baz': [1, 2, 3]};

console.log(array);
console.log(object);

// can even print DOM elements
console.log(document.getElementById('header'));

// stack trace output
foo('asdf');

fib(10);
..

Das Logging-Protokoll in der Firebug-Console (Aktivierung mit F12) sieht so aus:



Dank Firefox und Firebug gibt es für die Entwicklung komplexer Oracle Maps Applikationen und Web 2.0 Mashups recht gute Voraussetzungen.

Ein frohes Osterfest wünscht
Friedhold

Keine Kommentare: