cadent-datadog-logger
Overview
This package contains helper functions to use datadog's browser-sdk.
Purpose
The aim of this package is to help make using datadog's browser-sdk across an organization easier. By minimizing the amount of code needed to use the logger this will help make maintaining easier.
Usage
You will need to initialize the logger in your application. This is generally done in your applications root index. This will by default send all console outputs that are at warn and above.
Datadog will NOT initialize if env is set to "local"
Please refer to the DD SDK documentation for more options and further descriptions for each argument https://docs.datadoghq.com/logs/log_collection/javascript/
/**
* DataDog(DD) initialization function. Should only be used once in each application.
* @param {Object} intialization Initialization object send to DD
* @param {String} initialization.clientToken The DataDog clientToken
* @param {String} initialization.service The name of the application. Current convention is to use the unique url slug of the application.
* @param {String} initialization.env The env of the application. Use the current FE build env's OR ( cd | qa | uat | stg | prod )
* @param {String} initialization.handler How DD will send logs
* @param {Function} initialization.beforeSend Callback function that allows mutation or cancellation of the log event before send to DD. Additionally, this function should return a boolean.
* @param {Object} initialization[any] Any additional arguments will be passed directly to the DD initialization object.
* @returns true
*/
logger({ clientToken, service, env, handler, beforeSend, ...opts });
beforeSend
We are currently manually using the beforeSend hook to change any react warnings and react-hot-loader console.errors to log as a DD warning opposed to an error. If you want additional control you can use the beforeSend cb and add your own filters on top of what is currently in place. Please refer to the DD documentation for usage https://docs.datadoghq.com/logs/log_collection/javascript/#advanced-usage