Javascript Morgan日志记录在keystone应用程序中不起作用
我正在运行一个基于keystone.js express的应用程序。我正在尝试集成Morgan日志记录,但当任何HTTP请求到达该站点时,它都不起作用。我只是在控制台中看到正常的输出。我可能做错了什么 这是我的Javascript Morgan日志记录在keystone应用程序中不起作用,javascript,node.js,logging,keystonejs,Javascript,Node.js,Logging,Keystonejs,我正在运行一个基于keystone.js express的应用程序。我正在尝试集成Morgan日志记录,但当任何HTTP请求到达该站点时,它都不起作用。我只是在控制台中看到正常的输出。我可能做错了什么 这是我的routes/index.js文件 var keystone = require('keystone'), middleware = require('./middleware'), importRoutes = keystone.importer(__dirname);
routes/index.js
文件
var keystone = require('keystone'),
middleware = require('./middleware'),
importRoutes = keystone.importer(__dirname);
var morgan = require('morgan');
// Common Middleware
keystone.pre('routes', middleware.initLocals);
keystone.pre('render', middleware.flashMessages);
// Import Route Controllers
var routes = {
views: importRoutes('./views')
};
// Setup Route Bindings
exports = module.exports = function(app) {
//Logging
app.use(morgan('combined'));
// Views
app.get('/',middleware.ensureLatestBrowser, routes.views.index);
app.get('/blog/:category?',middleware.ensureLatestBrowser, routes.views.blog);
app.get('/blog/post/:post',middleware.ensureLatestBrowser, routes.views.post);
app.all('/contact', middleware.ensureLatestBrowser,routes.views.contact);
app.all('/software',middleware.ensureLatestBrowser, routes.views.software);
};
这是因为Keystone已经加载了
morgan
(在您之前加载)的一个实例。Keystone使用的默认格式是:方法:url:status:response time ms
Keystone允许您使用logger
选项自定义格式
keystone.init({
...
'logger': 'combined'
...
});
上面的示例将morgan
的输出格式设置为combined
编辑
从Keystone
0.3.x
开始,当Keystone迁移到Express4.x
和作为Express logger的morgan
时,上述情况是正确的。Keystone之前的0.3.x
版本使用Express3.x
和Express.logger
根据Keystone.js文档,如果我在init中设置logger:default
,它不会使用morgan,而是使用Express.logger进行日志记录。这很好,但我需要一种将输出写入文件而不是控制台的方法。实际上,它使用morgan
。我们需要更新文档。我今天提交了一份PR-do-update文档。我刚刚提交了一份PR-do-update-the-keystonejs.com文档()。因此,当我设置'logger':'combined'
时,每次我访问网站上的任何URL时,它都会在终端上打印出“combined”一词,而不是它应该使用的格式。有什么想法吗?只是出于好奇,你正在使用什么版本的Keystone?