/** * @author schukai GmbH */ import {Base} from '../types/base.mjs'; import {validateInstance, validateInteger} from "../types/validate.mjs"; import {LogEntry} from "./logentry.mjs"; import {ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN} from "./logger.mjs"; export {Handler} /** * The log handler is the interface between the log entries and the log listeners. * * ``` * <script type="module"> * import {ID} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/logging/handler.mjs'; * console.log(new Handler()) * </script> * ``` * * @since 1.5.0 * @copyright schukai GmbH * @memberOf Monster.Logging */ class Handler extends Base { constructor() { super(); /** * Loglevel * * @type {integer} */ this.loglevel = OFF; } /** * This is the central log function. this method must be * overwritten by derived handlers with their own logic. * * ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF (ALL = 0xff;OFF = 0x00; * * @param {LogEntry} entry * @returns {boolean} */ log(entry) { validateInstance(entry, LogEntry); if (this.loglevel < entry.getLogLevel()) { return false; } return true; } /** * set loglevel * * @param {integer} loglevel * @returns {Handler} * @since 1.5.0 */ setLogLevel(loglevel) { validateInteger(loglevel) this.loglevel = loglevel; return this; } /** * get loglevel * * @returns {integer} * @since 1.5.0 */ getLogLevel() { return this.loglevel; } /** * Set log level to All * * @returns {Handler} * @since 1.5.0 */ setAll() { this.setLogLevel(ALL); return this; }; /** * Set log level to Trace * * @returns {Handler} * @since 1.5.0 */ setTrace() { this.setLogLevel(TRACE); return this; }; /** * Set log level to Debug * * @returns {Handler} * @since 1.5.0 */ setDebug() { this.setLogLevel(DEBUG); return this; }; /** * Set log level to Info * * @returns {Handler} * @since 1.5.0 */ setInfo() { this.setLogLevel(INFO); return this; }; /** * Set log level to Warn * * @returns {undefined} * @since 1.5.0 */ setWarn() { this.setLogLevel(WARN); return this; }; /** * Set log level to Error * * @returns {Handler} * @since 1.5.0 */ setError() { this.setLogLevel(ERROR); return this; }; /** * Set log level to Fatal * * @returns {Handler} * @since 1.5.0 */ setFatal() { this.setLogLevel(FATAL); return this; }; /** * Set log level to Off * * @returns {Handler} * @since 1.5.0 */ setOff() { this.setLogLevel(OFF); return this; }; }