homebridge-denon-heos-audio
Version:
Control your Denon speakers via AVR Control and/or HeosCLI
87 lines • 3.22 kB
JavaScript
import { format } from "date-fns";
export const logLevelNumeric = {
["debug" /* LogLevel.DEBUG */]: 1,
["info" /* LogLevel.INFO */]: 2,
["success" /* LogLevel.SUCCESS */]: 3,
["warn" /* LogLevel.WARN */]: 4,
["error" /* LogLevel.ERROR */]: 5,
};
export const logLevelFromString = {
["debug"]: "debug" /* LogLevel.DEBUG */,
["info"]: "info" /* LogLevel.INFO */,
["success"]: "success" /* LogLevel.SUCCESS */,
["warn"]: "warn" /* LogLevel.WARN */,
["error"]: "error" /* LogLevel.ERROR */,
};
export class ConsoleLogger {
prefix;
logLevel;
datetimePrefix;
constructor(logLevel, prefix, datetimePrefix = false) {
this.prefix = prefix;
this.datetimePrefix = datetimePrefix;
this.logLevel = logLevelNumeric[logLevel];
}
log(level, message, ...parameters) {
if (this.logLevel <= logLevelNumeric[level]) {
let fullMessage;
if (this.prefix) {
fullMessage = this.datetimePrefix ? `[${format(new Date(), "M/d/yyyy, h:mm:ss a")}] [${this.prefix}] ${message}` : `[${this.prefix}] ${message}`;
}
else {
fullMessage = this.datetimePrefix ? `[${format(new Date(), "M/d/yyyy, h:mm:ss a")}] ${message}` : message;
}
console.log(fullMessage, ...parameters);
}
}
debug(message, ...parameters) {
this.log("debug" /* LogLevel.DEBUG */, message, ...parameters);
}
info(message, ...parameters) {
this.log("info" /* LogLevel.INFO */, message, ...parameters);
}
success(message, ...parameters) {
this.log("success" /* LogLevel.SUCCESS */, message, ...parameters);
}
warn(message, ...parameters) {
this.log("warn" /* LogLevel.WARN */, message, ...parameters);
}
error(message, ...parameters) {
this.log("error" /* LogLevel.ERROR */, message, ...parameters);
}
}
export class LoggerPrefixWrapper {
logger;
prefix;
additionalPrefix;
constructor(logger, additionalPrefix) {
this.logger = logger;
this.prefix = logger.prefix;
this.additionalPrefix = additionalPrefix;
}
log(level, message, ...parameters) {
const fullMessage = `[${this.additionalPrefix}] ${message}`;
this.logger.log(level, fullMessage, ...parameters);
}
debug(message, ...parameters) {
const fullMessage = `[${this.additionalPrefix}] ${message}`;
this.logger.debug(fullMessage, ...parameters);
}
info(message, ...parameters) {
const fullMessage = `[${this.additionalPrefix}] ${message}`;
this.logger.info(fullMessage, ...parameters);
}
success(message, ...parameters) {
const fullMessage = `[${this.additionalPrefix}] ${message}`;
this.logger.success(fullMessage, ...parameters);
}
warn(message, ...parameters) {
const fullMessage = `[${this.additionalPrefix}] ${message}`;
this.logger.warn(fullMessage, ...parameters);
}
error(message, ...parameters) {
const fullMessage = `[${this.additionalPrefix}] ${message}`;
this.logger.error(fullMessage, ...parameters);
}
}
//# sourceMappingURL=customLogging.js.map