2016-05-25 12 views
0

Ich schreibe ein Modul für einen Logger und ich möchte, dass jedes Mal ein Präfix hinzugefügt wird, wenn die Funktion dlog() mit dem Dateinamen der Datei aufgerufen wird, die die Funktion aufruft. Im Moment habe ich es jedes Mal wie folgt aufrufen:Gibt es eine Möglichkeit zu wissen, aus welcher Datei eine Funktion in nodejs aufgerufen wird?

dlog(__filename + " log text"); 

Gibt es eine Möglichkeit, den Namen der Datei ein Aufruf der Funktion, ohne dass dies zu erkennen?

Antwort

2

Von Nodejs: get filename of caller function:

function _getCallerFile() { 
    try { 
     var err = new Error(); 
     var callerfile; 
     var currentfile;

Error.prepareStackTrace = function (err, stack) { return stack; }; 

    currentfile = err.stack.shift().getFileName(); 

    while (err.stack.length) { 
     callerfile = err.stack.shift().getFileName(); 

     if(currentfile !== callerfile) return callerfile; 
    } 
} catch (err) {} 
return undefined; 

}

Verwandte Themen