electron-log-transport-datadog
Version:
Send logs to Datadog from electron-log in Electron.
54 lines • 1.29 kB
JavaScript
// src/index.ts
import { DataDogTransport } from "datadog-transport-common";
function dataDogTransport(options) {
options.service = options.service ?? "Electron";
const transport = new DataDogTransport(options);
return function processLogs(message) {
let msg = "";
let metadata = {};
let arrayData = [];
for (const data of message.data) {
if (typeof data === "string") {
msg = msg + data;
continue;
}
if (Array.isArray(data)) {
arrayData = arrayData.concat(data);
continue;
}
if (typeof data === "object") {
metadata = {
...metadata,
...data
};
}
}
let item = {
date: message.date.getTime(),
level: message.level,
message: msg
};
if (Object.keys(metadata).length) {
if (options.metadataField) {
item[options.metadataField] = metadata;
} else {
item = {
...item,
...metadata
};
}
}
if (arrayData.length) {
if (options.arrayDataField) {
item[options.arrayDataField] = arrayData;
} else {
item.arrayData = arrayData;
}
}
transport.processLog(item);
};
}
export {
dataDogTransport
};
//# sourceMappingURL=index.mjs.map