datadog-logger-integrations
Version:
Datadog logger integrations
50 lines (46 loc) • 1.7 kB
JavaScript
;
var DataDogWritableStream = require('../DataDogWritableStream-CdImPeib.cjs');
require('node:stream');
require('@datadog/datadog-api-client');
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
const convertLevel = (level) => {
if (typeof level === "string") return level;
if (level === 0) return "error";
if (level === 1) return "warning";
if (level === 2) return "info";
if (level === 3) return "info";
if (level === 4) return "debug";
return "trace";
};
const getDataDogStream = (config) => new DataDogWritableStream.DataDogWritableStream({
...config,
logMessageBuilder: config.logMessageBuilder ?? // level is the log level of the logger, not interested
(({ type, date, level, hostname, ...parsedItem }) => ({
ddsource: config.ddSource,
ddtags: config.ddTags,
service: config.service,
message: JSON.stringify({
date: date ?? (/* @__PURE__ */ new Date()).toISOString(),
...parsedItem,
level: convertLevel(type)
}),
hostname: typeof hostname === "string" ? hostname : void 0
}))
});
class DataDogReporter {
constructor(config) {
__publicField(this, "stream");
this.stream = getDataDogStream(config);
}
log(logObj) {
if (!this.stream.writableEnded)
this.stream.write(`${JSON.stringify(logObj)}
`);
}
}
exports.DataDogReporter = DataDogReporter;
exports.convertLevel = convertLevel;
exports.getDataDogStream = getDataDogStream;
//# sourceMappingURL=index.cjs.map