@gasket/log

Gasket client and server logger

Usage no npm install needed!

<script type="module">
  import gasketLog from 'https://cdn.skypack.dev/@gasket/log';
</script>

README

@gasket/log

Gasket client and server logger

Installation

npm i @gasket/log @gasket/plugin-log

Configuration

See the @gasket/plugin-log for more details on configuration.

Usage

Levels

Syslog levels are used by this packaged. Each level is exposed as a method on both server and client logger instances.

Level Description
debug Information useful to developers for debugging.
info Normal operational messages that require no action.
notice Events that are unusual, but not error conditions.
warning May indicate that an error will occur if action is not taken.
error Error conditions
crit Critical conditions
alert Should be corrected immediately
emerg System is unusable

Server

The server requires @gasket/plugin-log to set up a logger instance on the gasket object. This will make the logger instance available for use such as:

gasket.logger.error('Critical malfunction in code execution');
gasket.logger.info('Initializing @gasket/engine `start` lifecycle event');

The server uses winston used for logging. If your app is running locally, all messages are transported to process.stdout aka the console.

Client

For client logging, new logger instances can be instantiated as need. For example, in a component:

import React from 'react';
import Log from '@gasket/log';
import someAction from './some-feature';

class YourComponent extends React.Component {
  constructor() {
    super(...arguments);
    this.logger = new Log();
  }

  doSomething = async () => {
    this.logger.debug('Starting doing something');
    try {
      const results = await someAction();
      this.logger.info(`Did the thing: ${results}`);
    } catch (e) {
      this.logger.error('Something bad happened');
    }
  }

  render() {
    return (
      <div>
        <button onClick={this.doSomething}></button>
      </div>
    )
  }
}

NOTE: The client logger uses diagnostics to output log messages to the console. Ensure one of the trigger mechanics for diagnostics in browser is set. The name used for diagnostics is gasket*.

Test

npm test

Alternatively, you can also run the client or server tests separate.

npm run test:client
npm run test:server

License

MIT