Does node.js have anything like __file__ and __line__ like the c++ preprocessor macros?

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 logging events. I haven't found anything similar to it in the node.js world.

Does anyone have suggestions or know how I can get line number and file name in node.js for logging purposes?

I'm looking for something like:

console.log(__FILE__ + "." + __LINE__ + "\t" + new Date().toISOString() + " Message ");

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.