added logger for API calls

This commit is contained in:
Andris Reinman 2017-12-22 18:18:50 +02:00
parent 1fc652594c
commit 3fd9de40a1
2 changed files with 20 additions and 2 deletions

16
api.js
View file

@ -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));

View file

@ -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",