UNPKG

@soos-io/api-client

Version:

This is the SOOS API Client for registered clients leveraging the various integrations to the SOOS platform. Register for a free trial today at https://app.soos.io/register

70 lines (69 loc) 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.soosLogger = void 0; const enums_1 = require("../enums"); class SOOSLogger { console; minLogLevel; constructor(minLogLevel = enums_1.LogLevel.INFO, console = global.console) { this.console = console; this.minLogLevel = minLogLevel; } getTimeStamp() { const now = new Date(); const year = now.getFullYear(); const month = (now.getMonth() + 1).toString().padStart(2, "0"); const day = now.getDate().toString().padStart(2, "0"); const hours = (now.getHours() % 12 || 12).toString().padStart(2, "0"); const ampm = now.getHours() >= 12 ? "PM" : "AM"; const minutes = now.getMinutes().toString().padStart(2, "0"); const seconds = now.getSeconds().toString().padStart(2, "0"); const timestamp = `${year}-${month}-${day} ${hours}:${minutes}:${seconds} ${ampm}`; return `${timestamp}`; } logWithTimestamp(level, message, ...optionalParams) { if (this.shouldLog(level)) { const logLevelKey = enums_1.LogLevel[level]; const timestamp = this.getTimeStamp(); const logMessage = `${timestamp} UTC [${logLevelKey}] ${message}`; this.console.log(logMessage, ...optionalParams); } } shouldLog(level) { const orderedKeys = Object.keys(enums_1.LogLevel); return orderedKeys.indexOf(level) >= orderedKeys.indexOf(this.minLogLevel); } setMinLogLevel(minLogLevel) { this.minLogLevel = minLogLevel; } debug(message, ...optionalParams) { this.logWithTimestamp(enums_1.LogLevel.DEBUG, message, ...optionalParams); } info(message, ...optionalParams) { this.logWithTimestamp(enums_1.LogLevel.INFO, message, ...optionalParams); } warn(message, ...optionalParams) { this.logWithTimestamp(enums_1.LogLevel.WARN, message, ...optionalParams); } error(message, ...optionalParams) { this.logWithTimestamp(enums_1.LogLevel.ERROR, message, ...optionalParams); } group(...label) { this.console.group(...label); } groupEnd() { this.console.groupEnd(); this.console.log("\n"); } always(message, ...optionalParams) { const timestamp = this.getTimeStamp(); const logMessage = `${timestamp} UTC [SOOS] ${message}`; this.console.log(logMessage, ...optionalParams); } logLineSeparator() { const separator = "-".repeat(80); this.console.log(`${separator}\n`); } } exports.default = SOOSLogger; exports.soosLogger = new SOOSLogger();