From 139f4b3fb0152e30eba31882744daaf39b369cae Mon Sep 17 00:00:00 2001
From: Adhidarma Hadiwinoto <me@adhisimon.org>
Date: Fri, 6 Dec 2019 12:14:20 +0700
Subject: [PATCH] Morgan

---
 lib/apiserver/index.js |  9 +++++++++
 package-lock.json      | 17 +++++++++++++++++
 package.json           |  2 ++
 3 files changed, 28 insertions(+)

diff --git a/lib/apiserver/index.js b/lib/apiserver/index.js
index 70ab3a3..a32047d 100644
--- a/lib/apiserver/index.js
+++ b/lib/apiserver/index.js
@@ -1,4 +1,7 @@
 const express = require('express');
+const morgan = require('morgan');
+const rfs = require('rotating-file-stream');
+
 const config = require('komodo-sdk/config');
 const logger = require('komodo-sdk/logger');
 
@@ -6,6 +9,12 @@ const handlerOnReceived = require('./handler/on-received');
 
 const app = express();
 
+const accessLogStream = rfs('access_log', {
+    interval: '1d', // rotate daily
+    path: './logs',
+});
+app.use(morgan, 'combined', { stream: accessLogStream });
+
 function handlerPing(req, res) {
     res.end('PONG');
 }
diff --git a/package-lock.json b/package-lock.json
index 4d76a65..7583678 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3078,6 +3078,18 @@
       "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
       "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
     },
+    "morgan": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
+      "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
+      "requires": {
+        "basic-auth": "~2.0.0",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "on-headers": "~1.0.1"
+      }
+    },
     "ms": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -3783,6 +3795,11 @@
         "glob": "^7.1.3"
       }
     },
+    "rotating-file-stream": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/rotating-file-stream/-/rotating-file-stream-2.0.0.tgz",
+      "integrity": "sha512-CICpV69VCUujsdLdD6bqig7A9NjQU+HXRlt4YOqArg7wZynmvVOFYuL7tFF7UQEE7rUxy8G4RrRgo0tX1RU5uw=="
+    },
     "run-async": {
       "version": "2.3.0",
       "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
diff --git a/package.json b/package.json
index 3957459..cf24522 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,8 @@
     "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git",
     "locks": "^0.2.2",
     "moment": "^2.24.0",
+    "morgan": "^1.9.1",
+    "rotating-file-stream": "^2.0.0",
     "uniqid": "^5.2.0"
   },
   "devDependencies": {
-- 
1.9.0