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