UNPKG

node-jet

Version:

Jet Realtime Message Bus for the Web. Daemon and Peer implementation.

89 lines (88 loc) 2.38 kB
export var LogLevel; (function (LogLevel) { LogLevel[LogLevel["socket"] = 1] = "socket"; LogLevel[LogLevel["debug"] = 2] = "debug"; LogLevel[LogLevel["info"] = 3] = "info"; LogLevel[LogLevel["warn"] = 4] = "warn"; LogLevel[LogLevel["error"] = 5] = "error"; LogLevel[LogLevel["none"] = 6] = "none"; })(LogLevel || (LogLevel = {})); /** * Logger class used for logging. Logging can be done to a file to the console or to any callback */ export class Logger { logName; logLevel; callBacks; /** * Constructor to create a new Logger instance * @param settings */ constructor(settings = { logName: 'None' }) { this.logName = settings.logName; this.logLevel = settings.logLevel || LogLevel.none; this.callBacks = settings.logCallbacks; } /** * Function that transforms a message into a string of the format "<Date> <Time> <LogName> <LogLevel> <Message>" * @param msg * @param level * @returns string */ stringBuilder(msg, level) { const date = new Date(Date.now()); return `${date.toLocaleDateString()} ${date.toLocaleTimeString()}\t${this.logName}\t${LogLevel[level]}\t${msg}`; } /** * Function called to log a message. Messages are only logged if the provided message log level is greater then the configured log level * @param msg * @param level * @returns string */ log(msg, level = LogLevel.debug) { if (this.logLevel > level) { return; } const logMessage = this.stringBuilder(msg, level); if (this.callBacks) { this.callBacks.every((cb) => { cb(logMessage); }); } } /** * Log a message on the socket level * @param msg */ sock(msg) { this.log(msg, LogLevel.socket); } /** * Log a message on the debug level * @param msg */ debug(msg) { this.log(msg, LogLevel.debug); } /** * Log a Info message * @param msg */ info(msg) { this.log(msg, LogLevel.info); } /** * Log a warn message * @param msg */ warn(msg) { this.log(msg, LogLevel.warn); } /** * Log an error message * @param msg */ error(msg) { this.log(msg, LogLevel.error); } }