Logger

Logging wrapper.

This is used to allow turning on/off: - console.log - console.warn - console.error

Usage

import {Logger, LogLevel, LogTag} from '@wonderlandengine/api';

// Create a logger with only the "error" and "warn" levels activated
const logger = new Logger(LogLevel.Warn, LogLevel.Error);

// Only the "error" and "warn" levels are activated,
// this message isn't logged.
logger.info(LogTag.Component, 'This message is shushed')

// Prints 'Hello Error!'
logger.error(LogTag.Component, 'Hello Error!');

// Prints 'Hello Warning!'
logger.warn(LogTag.Component, 'Hello Warning!');

The log levels can be changed at anytime using the BitSet api:

// Enable the "info" level
logger.levels.enable(LogLevel.Info);
* // Disable the "warn" level
logger.levels.disable(LogLevel.Warn);

Tags

In addition, the logger supports tagging messages:

import {Logger, LogLevel, LogTag} from '@wonderlandengine/api';

const logger = new Logger(LogLevel.Info);

logger.tags.disableAll();

// All tags are off, this message isn't logged
logger.info(LogTag.Component, 'This message is shushed');

logger.tags.enable(LogTag.Component);
logger.info(LogTag.Component, 'Hello World!') // Prints 'Hello World!'

The tagging system gives another layer of control to enable / disable some specific logs.

Static Members

Properties

Methods


Constructor

.constructor(…levels: LogLevel[][]) ⇒ Logger

Create a new logger instance.

ParamTypeDescription
levelsLogLevel[]Default set of levels to enable.

Properties

.onLog: Emitter<[LogLevel, unknown[], number]>

Notified when an info, warn, or error message is logged.

Note: The emitter is always notified, even if the logger levels and tags are disabled.

Note: The message is passed as an array, similar to console.log.

Usage

import {LogLevel} from '@wonderlandengine/api';

engine.logger.onLog.add((level, messages, tag) => {
    // Only process error messages
    if (level !== LogLevel.Error) return;

    // Only process engine logs
    if (tag !== LogTag.Engine) return;

    const str = messages.join(' ');
    sendAnalytics(str);
});


Methods

.error(tag: number, …msg: unknown[][]) ⇒ Logger

Log the message(s) using console.error.

Returns: Reference to self (for method chaining).

ParamTypeDescription
tagnumberTag represented by a positive integer.
msgunknown[]A spread of message to log.

.info(tag: number, …msg: unknown[][]) ⇒ Logger

Log the message(s) using console.log.

Returns: Reference to self (for method chaining).

ParamTypeDescription
tagnumberTag represented by a positive integer.
msgunknown[]A spread of message to log.

.warn(tag: number, …msg: unknown[][]) ⇒ Logger

Log the message(s) using console.warn.

Returns: Reference to self (for method chaining).

ParamTypeDescription
tagnumberTag represented by a positive integer.
msgunknown[]A spread of message to log.