Gilles
Blogger
Hallo Leute,
Ich bin derzeit dabei einen Logger für javascript zu schreiben. Das Problem ist, das ich gerne auch den Namen der Funktion ausgeben lassen möchte, die das Logging aufruft.
Hier mal eine kleine Version mit einem Beispiel (Keine Angst mein Logger sieht nicht so aus ):
Die ganze Log-Level Geschichte habe ich jetzt mal weggelassen.
Meine Frage wäre: Komm ich ich irgend wie an den Wert "sayHiInLog" innerhalb der Funktion Logger::write oder Logger::debug?
Ich hab es vorhin mal mit arguments.calle.caller(.caller ...) probiert, aber irgend wie bin ich da nicht dran gekommen.
Ich bin derzeit dabei einen Logger für javascript zu schreiben. Das Problem ist, das ich gerne auch den Namen der Funktion ausgeben lassen möchte, die das Logging aufruft.
Hier mal eine kleine Version mit einem Beispiel (Keine Angst mein Logger sieht nicht so aus ):
Code:
function Logger() {
this.debug = function(msg) {
I.write(msg,"debug");
};
this.warn = function(msg) {
I.write(msg, "warn");
};
this.write = function(msg, level) {
try {
switch(level) {
case "debug" : function() { console.debug(msg);} break;
case "warn" : function() { console.warn(msg);} break;
}
} catch(e) {}
};
var I = this;
}
function Klasse() {
var log = new Logger();
this.sayHiInLog = function() {
log.debug("Ich bin eine Debug Nachricht");
};
}
Die ganze Log-Level Geschichte habe ich jetzt mal weggelassen.
Meine Frage wäre: Komm ich ich irgend wie an den Wert "sayHiInLog" innerhalb der Funktion Logger::write oder Logger::debug?
Ich hab es vorhin mal mit arguments.calle.caller(.caller ...) probiert, aber irgend wie bin ich da nicht dran gekommen.