我正在尝试将Morgan与Express.js结合使用以编写日志文件,同时也在控制台上显示我的日志。
我正在使用此代码:
var logger = require('morgan');
var accessLogStream = fs.createWriteStream('./access.log', {flags: 'a'});
app.use(logger("dev",{stream: accessLogStream}));
但是通过这种方式,我只获得控制台日志,而我的access.log文件仍然为空。
如果我改为这样做(不指定“dev”):
var logger = require('morgan');
var accessLogStream = fs.createWriteStream('./access.log', {flags: 'a'});
app.use(logger({stream: accessLogStream}));
我将日志记录在文件中,但未在控制台上。
如何同时获取控制台上的日志和文件上的日志?
先感谢您!
编辑:
目前,我已经找到了以下解决方案:
app.use(logger({format:"[:date[clf]] :method :url :status :response-time ms",stream: {
write: function(str)
{
accessLogStream.write(str);
console.log(str);
}
}}));
但是,如果您有更好的一个,那就不客气了!
最佳答案
var logger = require('morgan');
app.use(logger('common', {
stream: fs.createWriteStream('./access.log', {flags: 'a'})
}));
app.use(logger('dev'));
关于javascript - Morgan Logger + Express.js : writing file AND showing in console,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27230365/