node.js是否有像__file__和__line__之类的c ++预处理器macros?

我正在增强一些node.js应用程序中的日志logging。 过去曾经使用C ++的__ file__和__ line __预处理器macros来帮助我们在logging事件时追踪问题。 我还没有在node.js世界find类似的东西。

有没有人有build议或知道如何可以在node.js中获取行号和文件名作为logging目的?

我正在寻找像这样的东西:

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

请参阅: 访问V8 JavaScript中的行号(Chrome和Node.js)

然后为文件名:

 Object.defineProperty(global, '__file', { get: function(){ return __stack[1].getFileName().split('/').slice(-1)[0]; } }); 

你也可以使用process.argv[1]而不是调用__stack getter,但是我想保持它类似。

看全局对象 :

 __filename 

为lineNumber看到这个职位: javascript node.js获取行号尝试catch?

把前面的答案扩展到这里: https : //gist.github.com/gavinengel/8572856

允许设置全局variables:__line,__file,__ext,__dir

顺便说一句,我该如何创build?:__function,__method,__class

只需使用C preprocesor,为代码添加一个额外的构build步骤,但它允许剥离生产代码的日志logging。