diff --git a/app.js b/app.js
index 7370194a6ee4c038dfa088663ba4fbf700e69d0c..bc1584ee00fa0a9cd384ac4a3f2aee4c7c0d9c65 100644
--- a/app.js
+++ b/app.js
@@ -10,7 +10,7 @@ const { Logging, testLogLevels } = require('./src/logging.js');
 
 
 // Initialize logging.
-let logger = new Logging('./logging/');
+let logger = Logging.init('./logging/');
 
 
 /**
diff --git a/src/logging.js b/src/logging.js
index eaff4dd0467a9333548c1cc0aa670df8ad91b046..d1e07aee993ad9267e16aa894e04d0a7ee7cd121 100644
--- a/src/logging.js
+++ b/src/logging.js
@@ -18,9 +18,36 @@ const { getCurrentDate } = require('./helper_functions.js');
 
 
 /**
- * Logging class.
+ * "Fake" logging class used exclusively to initialize our real logging class.
+ * Helps keep our real singleton class private.
+ *
+ * This is necessary because JavaScript doesn't seem to allow constructor overloading or private constructors.
  */
 class Logging {
+
+    /**
+     * Class Constructor.
+     */
+    constructor() {
+        throw new Error('Initialize class with "Logging.init()".');
+    }
+
+    /**
+     * Method to initialize our singleton class.
+     */
+    static init(logging_dir) {
+        if ( ! Logging.instance ) {
+            Logging.instance = new LoggingClass(logging_dir);
+        }
+        return Logging.instance;
+    }
+}
+
+
+/**
+ * Real logging class.
+ */
+class LoggingClass {
     test_var = 'test_var string';
     #console_debug = 'debug test';
     #debug_file_logger;
@@ -234,7 +261,6 @@ function testLogLevels(logger) {
     logger.warning('WARNING level test.');
     logger.error('ERROR level test.');
     logger.log('Log/default level test.');
-
 }