diff --git a/api.js b/api.js index df9508f1..4ac2644b 100644 --- a/api.js +++ b/api.js @@ -3,6 +3,7 @@ const config = require('wild-config'); const restify = require('restify'); const log = require('npmlog'); +const logger = require('restify-logger'); const UserHandler = require('./lib/user-handler'); const MailboxHandler = require('./lib/mailbox-handler'); const MessageHandler = require('./lib/message-handler'); @@ -60,9 +61,9 @@ server.use((req, res, next) => { if (req.route.path === '/users/:user/updates') { req.headers['accept-encoding'] = ''; } - log.http(req.method, '%s - %s %s', req.url, res.statusCode, req.connection.remoteAddress); next(); }); + server.use(restify.plugins.gzipResponse()); server.use(restify.plugins.queryParser()); @@ -96,6 +97,19 @@ server.use((req, res, next) => { next(); }); +server.use( + logger(':color[90]:method :url :status-color:status:color[90] :time-spent:color-reset :append', { + stream: { + write: message => { + message = (message || '').toString(); + if (message) { + log.http('API', message.replace('\n', '').trim()); + } + } + } + }) +); + module.exports = done => { if (!config.imap.enabled) { return setImmediate(() => done(null, false)); diff --git a/package.json b/package.json index e48ed88a..1f5dbcf4 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,10 @@ "test": "mongo --eval 'db.dropDatabase()' wildduck-test && redis-cli -n 13 flushdb && NODE_ENV=test grunt", "apidoc": "apidoc -i lib/api/ -o docs/" }, - "keywords": ["imap", "mail server"], + "keywords": [ + "imap", + "mail server" + ], "author": "Andris Reinman", "license": "EUPL-1.1", "devDependencies": { @@ -56,6 +59,7 @@ "openpgp": "2.6.0", "qrcode": "1.0.0", "restify": "6.3.4", + "restify-logger": "^2.0.1", "seq-index": "1.1.0", "smtp-server": "3.4.1", "speakeasy": "2.0.0",