2016-03-28 94 views
3

我已经调用了一些记录器功能的节点应用程序。 我每个模块(而不是执行console.log)中调用这个代码一次又一次地调用功能

我的问题 我不喜欢它......有没有更好的方式来做到这一点在Node.js的? 而不是调用声明(以下前3行)在这里一遍又一遍 似乎这是redundend代码将在每个模块中调用,我需要使用此记录器(几乎所有...)

var Logs = require("internal-logging"); 
var appCon = Logs.addContext(); 
var logger = appCon.getLogger("/app/run"); 

... 

//this is the call to the logger inside each module 

logger.info("Configuration was found: " + path); 
+0

您可以使用'EventEmitter'并在一个地方创建事件侦听器,这将记录消息,并在其他模块中发送您的自定义事件以进行日志记录并传递给它所需的消息 – MysterX

+0

@MysterX - 请你举例说明如何去做? –

+0

你有没有考虑过把所有这一切放在一条线上? var logger = require(“internal-logging”)。addContext()。getLogger(“/ app/run”);'?看起来你不会缩短那么多。 – Bergi

回答

2

您可以创建自己的记录器模块:

// my-logger.js 
var Logs = require("internal-logging"); 
var appCon = Logs.addContext(); 
var logger = appCon.getLogger("/app/run"); 
module.exports = logger; 

,然后在其他文件:

var logger = require("./my-logger"); 
相关问题