5.2.3 • Published 3 years ago

@enjoytech/logging-api v5.2.3

Weekly downloads
13
License
SEE LICENSE IN LI...
Repository
github
Last release
3 years ago

Javascript Logging API

Dependencies

This library is using async / await and Promise and will therefore you must provide a polyfill for generators in older browsers. @babel/polyfill is good catch-all to provide that functionality and many others.

Endpoint Configuration

The D3 API endpoint URL and path is determined by window.location.hostname

UK: https://event-logging.uk.enjoy.com/prod/<source>

US: https://event-logging.enjoy.com/prod/<source>

The source is determined by the domain name. When the domain name is enjoy.com this is set to expert, otherwise it is set to internal.

Examples:

  • A development server at https://capcom.local.enjoytechnology.com will use the endpoint https://event-logging.enjoy.com/prod/internal
  • A staging server at https://unicorn.stg.enjoytechnology.com will use the endpoint https://event-logging.enjoy.com/prod/internal
  • A production UK server at https://capcom.uk.enjoy.com will use the endpoint https://event-logging.uk.enjoy.com/prod/expert
  • A production US server at https://capcom.enjoy.com will use the endpoint https://event-logging.enjoy.com/prod/expert

Config Options

developmentMode

boolean: (optional) Enables development mode

endpoint

string: (optional) development mode only A custom endpoint to send log events to. Override default endpoint configuration (above)

environment

string: (optional) development mode only Override default environment configuration (above)

source

string: (optional) development mode only Override default source configuration (above)

eventSource

string: (optional) Include a custom value in the source when logging. Will default to <hostname>/client, but specifying this will set it to <hostname>/<eventSource>

eventPrefix

string: (optional) Prefix all events logged with logEvent with the specified string

appStateMethod

() => object | Promise<object>: (optional) If you app has global state that you would like to be recorded with every event, you can provide a method that will return the serializable object representing that state. This can also return a Promise which will be resolved before recording the event. NOTE: This will be sent with every event, so be aware of the total size of the state you are sending down.

Usage

import LoggingApi from 'logging-api'
import store from './myReduxStore'

const config = {
  eventSource: 'my-source',
  eventPrefix: 'mysrc_',
  // Synchronous app state example, but this could also return a Promise
  appStateMethod: () => store.getState(),
}

const logger = new LoggingAPI(config)

logger.logEvent('my_event_name', { foo: 'bar' })
// Will emit an event named `mysrc_my_event_name`
5.2.3

3 years ago

5.2.2

3 years ago

5.2.1

3 years ago

5.1.1

3 years ago

5.1.0

3 years ago

5.0.0

3 years ago

4.1.0

3 years ago

4.0.0

3 years ago

3.1.0

3 years ago

3.0.0

6 years ago

2.0.9

6 years ago

2.0.7

6 years ago

2.0.6

7 years ago