@loglayer/transport-google-cloud-logging
Version:
Google Cloud Logging (Stackdriver) transport for the LogLayer logging library.
54 lines • 1.38 kB
JavaScript
// src/GoogleCloudLoggingTransport.ts
import { BaseTransport, LogLevel, LogLevelPriority } from "@loglayer/transport";
var GoogleCloudLoggingTransport = class extends BaseTransport {
rootLevelData;
level;
constructor(config) {
super(config);
this.rootLevelData = config.rootLevelData || {};
this.level = config.level ?? LogLevel.trace;
}
mapLogLevel(level) {
switch (level) {
case LogLevel.fatal:
return "CRITICAL";
case LogLevel.error:
return "ERROR";
case LogLevel.warn:
return "WARNING";
case LogLevel.info:
return "INFO";
case LogLevel.debug:
return "DEBUG";
case LogLevel.trace:
return "DEBUG";
default:
return "DEFAULT";
}
}
shipToLogger({ data, hasData, logLevel, messages }) {
if (LogLevelPriority[logLevel] < LogLevelPriority[this.level]) {
return [];
}
const entry = this.logger.entry(
{
...this.rootLevelData,
severity: this.mapLogLevel(logLevel),
timestamp: /* @__PURE__ */ new Date()
},
{
...data && hasData ? data : {},
message: messages.join(" ")
}
);
this.logger.write(entry);
if (data && hasData) {
return [data, messages];
}
return [messages];
}
};
export {
GoogleCloudLoggingTransport
};
//# sourceMappingURL=index.js.map