Singleton

by Artem

Babel + JSX

'use strict';

const ProgramLogger = (function() {
  let instance;
  let logInfo = 'This is a log file. \n\n';
  class ProgramLogger {
    constructor() {
      if (!instance) {
        instance = this;
      }
      return instance;
    }
    addLogInfo(info) {
      logInfo += `${info} \n`;
    }
    showLogFile() {
      console.log(logInfo);
    }
  }

  return ProgramLogger;
}());

// usage
const programLogger = new ProgramLogger();
programLogger.addLogInfo('First log...');
programLogger.addLogInfo('Second log...');
programLogger.addLogInfo('Third log...');
programLogger.showLogFile();