A very light weight async logger for browser based logging
let logger = createLogger({
url: 'http://localhost:3000/api/log',
asyncHttpOutput: true
});
logger.setLevel('trace');
logger.info('business events like "payment success"');
logger.warn('non critical status or failures');
logger.error('business rule fail or system error');
logger.debug('during development or additional diagnostic, limited production use');
logger.trace('includes stack trace very limited production');
logger.flush();
{
url: 'http://localhost:3000/api/log',
consoleOutput: false,
asyncHttpOutput: true,
logLevel: 'info',
queueLength: 100,
timerInterval: 250,
batchSize: 25,
timeout: 1000,
csrfTokenCookieName: ""
}
The target url for the http writer (no default) An error will be thrown if asyncHttpOutput is true and no url is provided
If set to true creates a ConsoleWriter that will output a to the browser console (defaults to false) Console logging should not be on in production
If set to true creates AsyncWriter which uses an AxiosWriter to make remote http posts (defaults to true)
The maximum number of log entries the AsycWriter will queue (defaults to 100)
The time interval, in milliseconds, for asynchronous writes (defaults to 250)
The number of log entries that will be posted in for each interval (defaults to 25)
The timeout for post request (defaults to 1000)
Sets the log level that will be forwarded from the logger to the writers (defaults to INFO)
Sets the name of the cookie containing the CSRF Token, if CSRF tokens are added from cookies. If this is blank/undefined, then no CSRF token will be sent (defaults to undefined).
npm install ace-browser-logger
- Add circuit breaker functionality to AsyncWriter
- Send last batch on window.beforeUnload event
- Accept events from windows error event
- New Relic Writer for the asyncwriter to forward events to
- Splunk writer
- Filter log events at the registered writers instead of centrally at the logger
- Tag Writer for abobe analytics