datadog-logger-integrations
Version:
Datadog logger integrations
46 lines (43 loc) • 1.6 kB
JavaScript
import { D as DataDogWritableStream } from '../DataDogWritableStream-DmZdC6Mh.mjs';
import 'node:stream';
import '@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({
...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)}
`);
}
}
export { DataDogReporter, convertLevel, getDataDogStream };
//# sourceMappingURL=index.mjs.map