@probe.gl/log
Version:
JavaScript debug logging for browser and Node
53 lines (44 loc) • 1.58 kB
text/typescript
// probe.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
/* eslint-disable no-console */
import {LogFunction} from './logger';
import {BaseLog, NormalizedLogArguments, noop} from './base-log';
/**
* Minimal console-backed logger. Does not persist configuration or implement log levels.
* Intended as a lightweight Logger implementation.
*/
export class ConsoleLog extends BaseLog {
override warn(message: string, ...args: unknown[]): LogFunction {
return this._log('warn', 0, message, args, {
method: console.warn || console.log,
once: true
});
}
override error(message: string, ...args: unknown[]): LogFunction {
return this._log('error', 0, message, args, {method: console.error});
}
override log(logLevel, message?, ...args: unknown[]): LogFunction {
return this._log('log', logLevel, message, args, {
method: console.debug || console.log
});
}
override info(logLevel, message?, ...args: unknown[]): LogFunction {
return this._log('info', logLevel, message, args, {
method: console.info || console.log
});
}
override once(logLevel, message?, ...args: unknown[]): LogFunction {
return this._log('once', logLevel, message, args, {
method: console.debug || console.info || console.log,
once: true
});
}
protected override _emit(_type: string, normalized: NormalizedLogArguments): LogFunction {
const method = normalized.method;
if (!method) {
return noop;
}
return method.bind(console, normalized.message, ...normalized.args);
}
}