UNPKG

@runejs/core

Version:

Core logging, networking, and buffer functionality for RuneJS applications.

84 lines 2.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setLoggerTimeFn = exports.setLoggerPrettyPrint = exports.setLoggerOptions = exports.logger = exports.RuneLogger = exports.LOGGER_DEFAULT_TIME_FN = void 0; const tslib_1 = require("tslib"); const pino_1 = tslib_1.__importDefault(require("pino")); exports.LOGGER_DEFAULT_TIME_FN = pino_1.default.stdTimeFunctions.isoTime; /** * The main RuneJS wrapper class for the Pino logger. */ class RuneLogger { constructor() { /** * The logger's active date/time format function for log messages. * IE timestamp: () => `,"time":"${new Date(Date.now()).toISOString()}"` */ this.loggerTimeFn = exports.LOGGER_DEFAULT_TIME_FN; /** * The main pino logger instance for the wrapper object. */ this.pinoLogger = pino_1.default({ timestamp: this.loggerTimeFn, prettyPrint: true }); } info(...messages) { this.log('info', ...messages); } debug(...messages) { this.log('debug', ...messages); } warn(...messages) { this.log('warn', ...messages); } error(...messages) { this.log('error', ...messages); } trace(...messages) { this.log('trace', ...messages); } fatal(...messages) { this.log('fatal', ...messages); } log(consoleType, ...args) { args.forEach(arg => this.pinoLogger[consoleType](arg)); } } exports.RuneLogger = RuneLogger; /** * The main logger singleton instance. */ exports.logger = new RuneLogger(); /** * Sets the logger options to the given options object. * @param options */ const setLoggerOptions = (options) => { if (!options.timestamp) { options.timestamp = exports.LOGGER_DEFAULT_TIME_FN; } exports.logger.loggerTimeFn = options.timestamp; exports.logger.pinoLogger = pino_1.default(options); }; exports.setLoggerOptions = setLoggerOptions; /** * Sets the logger prettyPrint value. * @param prettyPrint The value to set prettyPrint to. */ const setLoggerPrettyPrint = (prettyPrint) => { exports.logger.pinoLogger = pino_1.default({ timestamp: exports.logger.loggerTimeFn, prettyPrint }); }; exports.setLoggerPrettyPrint = setLoggerPrettyPrint; /** * Sets the logger's date/time function to the given value. * @param format The function that will return the partial JSON value of the current time for Pino to ingest. * IE timestamp: () => `,"time":"${new Date(Date.now()).toISOString()}"` */ const setLoggerTimeFn = (format) => { exports.logger.loggerTimeFn = format; }; exports.setLoggerTimeFn = setLoggerTimeFn; //# sourceMappingURL=logger.js.map