platform-helpers/log4js-test-log-config.js

const rootRequire = require('rpcm-root-require');
const log4js = require('log4js');
const fse = require('fs-extra');
rootRequire('/platform-helpers/string-extensions');

/**
 *
 * log.setLevel(Level.WARN);
 *
 * log.trace("Trace Message!");
 * log.debug("Debug Message!");
 * log.info("Info Message!");
 * log.warn("Warn Message!");
 * log.error("Error Message!");
 * log.fatal("Fatal Message!");
 *
 * Warn Message!
 * Error Message!
 * Fatal Message!
 *
 */
class LoggerConfiguration {
  static set = () => {
    const logsFolder = '{0}/{1}'.format(rootRequire.rootPath, 'logs/app');
    fse.ensureDirSync(logsFolder);
    fse.readdirSync(logsFolder).forEach(file => fse.removeSync(file));
    log4js.configure({
      appenders: {
        out: { type: 'stdout' },
        app: { type: 'fileSync', filename: '{0}/{1}'.format(logsFolder, 'application.log') },
        file: { type: 'multiFile', base: logsFolder, property: 'fileName', extension: '.log' }
      },
      categories: {
        default: { appenders: ['out', 'app'], level: 'trace' },
        file: { appenders: ['file'], level: 'trace' }
      }
    });
  };
}

module.exports = LoggerConfiguration;