Log interface to deal with log everywhere:

  • filter log level: filter log level independantly of the browser
  • subscribe logs: listen logs to effectuate some specific job related logs
  • intercept logs: intercept logs to change the default behavior
  • redirect logs: redirect logs to one other logger engine
  • redefine logs: change log text like adding a prefix

You have 4 LogLevel 'error','warn','info',and 'debug', as commonly managed by browsers. You can use ILog.level or ILog.on to customer log level and behavior.

Example

// filter log level globally, independantly of the browser
import { log } from '@ceeblue/web-utils';
log.level = LogLevel.WARN; // displays errors and warns

// filter log level only for Player compoment
player.log.level = false; // no logs at all for player compoment

// Intercept and redirect all the logs to the console (default behavior)
import { log } from '@ceeblue/web-utils';
log.on = (level:LogLevel,args:unknown[]) => {
console[level](...args.splice(0)); // args is empty after this call = final interception
}

// Intercept the logs from Player compoment and displays only WARN logs
player.log.on = (level:LogLevel,args:unknown[]) => {
if (level !== LogLevel.WARN) {
args.length = 0; // args is empty after this call = final interception
}
}

// Subscribe and redirect all the logs to a file logger
import { log } from '@ceeblue/web-utils';
log.on = (level:LogLevel,args:unknown[]) => {
fileLogger[level](...args); // args stays unchanged to let's continue the default behavior
}

// Redefine the log to add some prefix indication
class Player {
connector = new Connector();
constructor() {
connector.log = this.log.bind(this,"Connector log:");
}
}

Hierarchy

  • ILog
  • Build a log

    Parameters

    • Rest ...args: unknown[]

    Returns Log

Properties

Properties

level?: boolean | LogLevel

Change log level, default log level is LogLevel.INFO, Boolean can be user to lets pass all the logs with true or disables all the logs with false.

Note

To debug production code without modifying it you can use a special query parameter called !cb-override-log-level to override this configuration.

on: ((level, args) => void)

Type declaration

    • (level, args): void
    • Intercept,redefine or redirect any log If you clear args you intercept the log and nothing happen more after this call.

      Parameters

      Returns void

Generated using TypeDoc