我正在尝试将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);
    }
}}));

但是,如果您有更好的一个,那就不客气了!

最佳答案

github

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/

10-12 16:47