I\'m working on enhancing logging in some node.js applications. In the past have used C++\'s __ file__ and __ line __ preprocessor macros to help us track down issues when
see the global object:
__filename
for the lineNumber see this post: javascript node.js getting line number in try catch?
See: Accessing line number in V8 JavaScript (Chrome & Node.js)
Then for a filename:
Object.defineProperty(global, '__file', {
get: function(){
return __stack[1].getFileName().split('/').slice(-1)[0];
}
});
You could also just use the process.argv[1]
instead of calling the __stack
getter but I wanted to keep it similar.
Expanded on the previous answers a bit into here: https://gist.github.com/gavinengel/8572856
Allows setting globals: __line, __file, __ext, __dir
By the way, how do I create?: __function, __method, __class
Just use the C preprocesor, adds an extra build step to your code but then it allows stripping out your logging for production code.