UNPKG

@wbg-mde/repository

Version:

Managing all common method for file system CRUD operations.

90 lines (89 loc) 3.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const mkdirp = require("mkdirp"); const path = require("path"); const model_1 = require("@wbg-mde/model"); const resource_path_1 = require("../resource-path/resource-path"); const app_repo_utility_1 = require("./app.repo.utility"); const winston = require('winston'); let logger; class ApplicationLogger { constructor() { this.resourcePath = new resource_path_1.ResourcePath(); this.initAppLogger(); } initAppLogger() { try { let filePaths = this.resourcePath.getLogFilePath(); this.createMainPaths(filePaths); let finalPath = this.resourcePath.getTodaysLog(); if (!fs.existsSync(finalPath)) { fs.writeFile(finalPath, '{"level":"info","message":"Log file created"}', (err) => { if (err) { return true; } }); } logger = winston.createLogger({ format: winston.format.combine(winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.json()), transports: [ new winston.transports.File({ filename: finalPath }) ] }); } catch (e) { return true; } } createMainPaths(paths) { if (!fs.existsSync(paths[0])) { mkdirp.sync(paths[0]); } } removeOlderLogs(filePath) { try { fs.readdir(filePath, function (err, files) { files.forEach(function (file, index) { fs.stat(path.join(filePath, file), function (err, stat) { var endTime, now; if (err) { return console.error(err); } now = new Date().getTime(); endTime = new Date(stat.ctime).getTime() + 2.592e+8; if (now > endTime) { app_repo_utility_1.App_Repository_Utility.deleteFolder(filePath); } }); }); }); } catch (e) { return true; } } static writeLog(levels, log) { try { switch (levels) { case model_1.LogLevels.error: logger.error(log); break; case model_1.LogLevels.info: logger.info(log); break; default: logger.info(log); break; } } catch (e) { return true; } } } exports.ApplicationLogger = ApplicationLogger;