@hashgraph/hedera-local
Version:
Developer tooling for running Local Hedera Network (Consensus + Mirror Nodes).
131 lines • 4.83 kB
JavaScript
;
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoggerService = void 0;
const constants_1 = require("../constants");
const VerboseLevel_1 = require("../types/VerboseLevel");
/**
* LoggerService is a service class that handles logging.
* It implements the IService interface.
* @public
*/
class LoggerService {
/**
* Creates an instance of the LoggerService.
* @param {number} verboseLevel - The level of verbosity for the logger service.
*/
constructor(verboseLevel) {
this.serviceName = LoggerService.name;
this.verboseLevel = verboseLevel;
this.logger = console;
this.trace('Logger Service Initialized!', this.serviceName);
}
/**
* Returns the color for the message written on the terminal
* @param verboseLevel - The level of verbosity for the logger service.
* @returns {string} The name of the service.
* @public
*/
static pickVerbosityColor(verboseLevel) {
switch (verboseLevel) {
case VerboseLevel_1.VerboseLevel.ERROR:
return constants_1.ERROR_COLOR;
case VerboseLevel_1.VerboseLevel.WARNING:
return constants_1.WARNING_COLOR;
case VerboseLevel_1.VerboseLevel.INFO:
return constants_1.INFO_COLOR;
case VerboseLevel_1.VerboseLevel.DEBUG:
return constants_1.DEBUG_COLOR;
case VerboseLevel_1.VerboseLevel.TRACE:
return constants_1.TRACE_COLOR;
default:
return constants_1.INFO_COLOR;
}
}
/**
* Builds the message to log.
* @param msg - The message to log.
* @param module - The module where the message originates.
* @param verboseLevel - The level of verbosity for the logger service.
* @returns {string} The message to log.
* @private
*/
static messageCompute(msg, module, verboseLevel) {
return `${constants_1.COLOR_DIM}[Hedera-Local-Node]${constants_1.COLOR_RESET}${LoggerService.pickVerbosityColor(verboseLevel)} ${VerboseLevel_1.VerboseLevel[verboseLevel]} ${constants_1.COLOR_RESET}${constants_1.COLOR_DIM}(${module})${constants_1.COLOR_RESET} ${msg}`;
}
/**
* Logs a trace message.
* @param msg - The message to log.
* @param module - The module where the message originates.
* @public
*/
trace(msg, module = '') {
if (this.verboseLevel < VerboseLevel_1.VerboseLevel.TRACE) {
return;
}
const msgToLog = LoggerService.messageCompute(msg, module, VerboseLevel_1.VerboseLevel.TRACE);
this.writeToLog(msgToLog, module);
}
/**
* Logs a debug message.
* @param msg - The message to log.
* @param module - The module where the message originates.
* @public
*/
info(msg, module = '') {
if (this.verboseLevel < VerboseLevel_1.VerboseLevel.INFO) {
return;
}
const msgToLog = LoggerService.messageCompute(msg, module, VerboseLevel_1.VerboseLevel.INFO);
this.writeToLog(msgToLog, module);
}
/**
* Logs a warning message.
* @param msg - The message to log.
* @param module - The module where the message originates.
* @public
*/
warn(msg, module = '') {
if (this.verboseLevel < VerboseLevel_1.VerboseLevel.WARNING) {
return;
}
const msgToLog = LoggerService.messageCompute(`${constants_1.CHECK_WARN} ${msg}`, module, VerboseLevel_1.VerboseLevel.WARNING);
this.writeToLog(msgToLog, module);
}
/**
*
* @param msg - The message to log.
* @param module - The module where the message originates.
* @public
*/
error(msg, module = '') {
if (this.verboseLevel < VerboseLevel_1.VerboseLevel.ERROR) {
return;
}
const msgToLog = LoggerService.messageCompute(`${constants_1.CHECK_FAIL} ${msg}`, module, VerboseLevel_1.VerboseLevel.ERROR);
this.writeToLog(msgToLog, module);
}
/**
*
* @param msg - The message to log.
* @param module - The module where the message originates.
* @public
*/
debug(msg, module = '') {
if (this.verboseLevel < VerboseLevel_1.VerboseLevel.DEBUG) {
return;
}
const msgToLog = LoggerService.messageCompute(msg, module, VerboseLevel_1.VerboseLevel.DEBUG);
this.writeToLog(msgToLog, module);
}
/**
* Writes a message to the log.
* @param msg - The message to write.
* @param module - The module where the message originates.
*/
writeToLog(msg, module) {
this.logger.log(msg);
}
}
exports.LoggerService = LoggerService;
//# sourceMappingURL=LoggerService.js.map