diff --git a/src/index.ts b/src/index.ts
index a29950257acd339d601c027b93706cd18755b5ff..e8e3317d1e274c48a65c99eb06bea2cbba8d1715 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -40,6 +40,28 @@ app.use(express.raw({
   limit: '50mb',
 }));
 
+app.use((req, res, next) => {
+  const reqToLog = {
+    body: { ...req.body },
+    hostname: req.hostname,
+    ip: req.ip,
+    method: req.method,
+    params: { ...req.params },
+    path: req.path,
+    protocol: req.protocol,
+    query: { ...req.query },
+    secure: req.secure,
+  };
+
+  // before logging the request, we have to hide sensitive information
+  if (typeof reqToLog.body.password !== 'undefined') {
+    reqToLog.body.password = '__HIDDEN__';
+  }
+
+  logger.info('Request received', { request: reqToLog });
+  next();
+});
+
 app.use(Routes);
 
 app.use((error: Error, request: Request, response: Response, next: NextFunction) => {