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

67 lines (66 loc) 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.soosLogger = void 0; const enums_1 = require("../enums"); class SOOSLogger { static orderedLogLevels = Object.keys(enums_1.LogLevel); 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)) { this.console.log(`${this.getTimeStamp()} UTC [${enums_1.LogLevel[level]}] ${message}`, ...optionalParams); } } shouldLog(level) { return (SOOSLogger.orderedLogLevels.indexOf(level) >= SOOSLogger.orderedLogLevels.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) { this.console.log(`${this.getTimeStamp()} UTC [SOOS] ${message}`, ...optionalParams); } logLineSeparator() { if (this.minLogLevel === enums_1.LogLevel.DEBUG || this.minLogLevel === enums_1.LogLevel.INFO) { this.console.log(`${"-".repeat(80)}\n`); } } } exports.default = SOOSLogger; exports.soosLogger = new SOOSLogger();