diff --git a/common/logger.js b/common/logger.js
new file mode 100644
index 0000000000000000000000000000000000000000..daa913145d60fb7ac50aa597907445d8a2f09e08
--- /dev/null
+++ b/common/logger.js
@@ -0,0 +1,39 @@
+/* To use this logger, just require the file and use the logger as follows:
+ * <code>
+ * const logger = require('./common/logger.js');
+ * logger.log('info', 'This is an information message.');
+ * logger.log('debug', 'This is an information message.');
+ * logger.log('warn', 'This is an information message.');
+ * logger.log('warning', 'This is an information message.');
+ * logger.log('error', 'This is an information message.');
+ * </code>
+ */
+
+const winston = require('winston');
+
+const __loggerCustomLevels = {
+  levels: {
+    debug: 3,
+    info: 2,
+    warn: 1,
+    warning: 1,
+    error: 0
+  },
+  colors: {
+    debug: 'blue',
+    info: 'green',
+    warn: 'yellow',
+    warning: 'yellow',
+    error: 'red'
+  }
+};
+
+module.exports = global.logger = module.exports = winston.createLogger({
+  transports: [new winston.transports.Console()],
+  level: "debug",
+  levels: __loggerCustomLevels.levels,
+  format: winston.format.combine(
+    winston.format.colorize({ all: true }),
+    winston.format.simple()
+  )
+});
diff --git a/package.json b/package.json
index e8dd94ecc5ae55f8fe41366b474a900255e3848e..7c424db1d2aed27bd8169d400be2dc4c2ddba6a9 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,8 @@
     "ejs": "^3.1.5",
     "electron": "^10.1.1",
     "express": "^4.17.1",
-    "sqlite3": "^5.0.0"
+    "sqlite3": "^5.0.0",
+    "winston": "^3.3.3"
   },
   "config": {
     "port": "8080",