javascript - morgan 日志记录在 keystone 应用程序中不起作用

标签 javascript node.js logging keystonejs

我正在运行一个基于 keystone.js Express 的应用程序。我正在尝试集成 Morgan 日志记录,但当任何 HTTP 请求到达该站点时它不起作用。我只是在控制台中看到正常的输出。我可能做错了什么?

这是我的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 使用的默认格式为 :method :url :status :response-time ms

Keystone 允许您使用logger 选项自定义格式。

keystone.init({
   ...
   'logger': 'combined'
   ...
});

上面的示例将 morgan 的输出格式设置为 combined


编辑

从 Keystone 0.3.x 开始,上述情况成立,当时 Keystone 迁移到 Express 4.x 并使用 morgan 作为 Express 记录器。 Keystone 0.3.x 之前的版本使用 Express 3.xexpress.logger

关于javascript - morgan 日志记录在 keystone 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200566/

相关文章:

javascript - IndexedDB:检索具有最大值的项目

Android - Play 商店 - 更改订阅的到期日期

node.js - 使用 Helmet 设置 CSP 和 CORS header 后未加载资源

docker - kubernetes 中的多行 Fluentd 日志

haskell - 无法将 LoggingT 与 NoLoggingT 匹配

javascript - 如何在浏览器中公开外部库以便 Jest 单元测试可以看到它?

javascript - 如何在 native react 中停止 setInterval

python - 如何使用 Python 的 RotatingFileHandler

javascript - 刷新react页面不会将父状态传递给子状态

node.js - 在 Windows 10 WSL 上访问 AWS 凭证 : Error: connect ECONNREFUSED 169. 254.169.254 :80 at TCPConnectWrap. afterConnect