Madgex Datadog logger setup for node applications
Use to create console and/or Hapi Good loggers that will output logs (with log level) to DD agent
By Jim O'Neill
Uses the winston logging with a custom winston-tcp-transport
Usage
Require the package:-
const DatadogLogger = require('@madgex/datadog-logger');
To use global logger instance:-
DatadogLogger.Logger.info('Using global logger instance');
To create the console logger (note - sets global logger instance):-
let loggerOptions = { level: 'debug' };
if (process.env.NODE_ENV === 'production') {
loggerOptions.dataDog = {
port: myServicePortNo,
udp: true,
};
}
_logger = await DatadogLogger.createLogger(loggerOptions);
_logger.info('logger is setup');
DatadogLogger.Logger.info('logger is setup');
Example usages:-
_logger.error(err);
_logger.debug('info', infoObj);
_logger.trace('trace message');
To setup the good reporter for Hapi:-
const goodOptions = {
ops: {
interval: 1000,
},
reporters: {
loggerReporter: [DatadogLogger.createGoodReporter(_logger, {
pathsToInclude: ['/v1']
})]
},
};
const server = Hapi.server(...)
await server.register([
...
{ plugin: Good, options: goodOptions }
]);
This module has custom levels equivalent to those used in nlog and serilog:-
const _loggingLevels = {
fatal: 0,
error: 1,
warn: 2,
info: 3,
debug: 4,
trace: 5
};