2017-09-14 58 views
0

我想要在一個快速 日誌文件中的基於應用程序的每個請求有請求和響應。我只想要jsons和迴應。你可以建議我使用中間件還是另一種最適合此目的的解決方案?Nodejs記錄器中間件

問候

回答

2

嘗試Morgan和使用跳過非JSON請求自定義過濾器。

app.use(
    morgan(
    ':method :url :status :res[content-length] - :response-time ms', 
    { skip: skipNonJSON } 
) 
) 

skipNonJSON如果由JSON請求你的意思是與.json結尾的URL可以定義爲如下,

function skipNonJSON(request, respnose) { 
    return !(/\.json$/.test(req.url)) 
} 

。對於JSON payloaded請求,看看標題

function skipNonJSON(request, respnose) { 
    return req.headers["Content-Type"] !== "application/json"; 
} 
+0

謝謝!半小時前我開始嘗試摩根。 –

2

你可以使用winston記錄器是高度可配置的。

const winston = require('winston'); 
let logger = new (winston.Logger)({ 
    transports: [ 
    new (winston.transports.File)({ filename: 'file.log' }) 
    ] 
}); 
logger.info('Your custom data to log'); 
+0

謝謝!用Winston也可以記錄響應主體。這正是我需要的。 –