@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
JavaScript
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();
;