@loglayer/transport-google-cloud-logging
Version:
Google Cloud Logging (Stackdriver) transport for the LogLayer logging library.
53 lines (51 loc) • 1.75 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
let _loglayer_transport = require("@loglayer/transport");
//#region src/GoogleCloudLoggingTransport.ts
var GoogleCloudLoggingTransport = class extends _loglayer_transport.BaseTransport {
rootLevelData;
rootLevelMetadataFields;
constructor(config) {
super(config);
this.rootLevelData = config.rootLevelData || {};
this.rootLevelMetadataFields = config.rootLevelMetadataFields ?? [];
}
mapLogLevel(level) {
switch (level) {
case _loglayer_transport.LogLevel.fatal: return "CRITICAL";
case _loglayer_transport.LogLevel.error: return "ERROR";
case _loglayer_transport.LogLevel.warn: return "WARNING";
case _loglayer_transport.LogLevel.info: return "INFO";
case _loglayer_transport.LogLevel.debug: return "DEBUG";
case _loglayer_transport.LogLevel.trace: return "DEBUG";
default: return "DEFAULT";
}
}
extractLogEntryFields(data) {
const keys = Object.keys(data);
const metadata = {};
for (const key of keys) if (this.rootLevelMetadataFields.includes(key)) {
metadata[key] = data[key];
delete data[key];
}
return metadata;
}
shipToLogger({ data, hasData, logLevel, messages }) {
const safeData = data && hasData ? data : {};
const metadata = this.extractLogEntryFields(safeData);
const entry = this.logger.entry({
...this.rootLevelData,
...metadata,
severity: this.mapLogLevel(logLevel),
timestamp: /* @__PURE__ */ new Date()
}, {
...safeData,
message: messages.join(" ")
});
this.logger.write(entry);
if (data && hasData) return [data, messages];
return [messages];
}
};
//#endregion
exports.GoogleCloudLoggingTransport = GoogleCloudLoggingTransport;
//# sourceMappingURL=index.cjs.map