@enjoytech/logging-api
v5.2.3
Published
Enjoy Javascript Logging API
Downloads
17
Keywords
Readme
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 endpointhttps://event-logging.enjoy.com/prod/internal
- A staging server at
https://unicorn.stg.enjoytechnology.com
will use the endpointhttps://event-logging.enjoy.com/prod/internal
- A production UK server at
https://capcom.uk.enjoy.com
will use the endpointhttps://event-logging.uk.enjoy.com/prod/expert
- A production US server at
https://capcom.enjoy.com
will use the endpointhttps://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`