2016-03-28 112 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");