about summary refs log tree commit diff
path: root/src/logger/transports/bitdrift.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/logger/transports/bitdrift.ts')
-rw-r--r--src/logger/transports/bitdrift.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/logger/transports/bitdrift.ts b/src/logger/transports/bitdrift.ts
new file mode 100644
index 000000000..6e335f29c
--- /dev/null
+++ b/src/logger/transports/bitdrift.ts
@@ -0,0 +1,30 @@
+import {
+  debug as bdDebug,
+  error as bdError,
+  info as bdInfo,
+  warn as bdWarn,
+} from '#/lib/bitdrift'
+import {LogLevel, Transport} from '#/logger/types'
+import {prepareMetadata} from '#/logger/util'
+
+const logFunctions = {
+  [LogLevel.Debug]: bdDebug,
+  [LogLevel.Info]: bdInfo,
+  [LogLevel.Log]: bdInfo,
+  [LogLevel.Warn]: bdWarn,
+  [LogLevel.Error]: bdError,
+} as const
+
+export const bitdriftTransport: Transport = (
+  level,
+  context,
+  message,
+  metadata,
+) => {
+  const log = logFunctions[level]
+  log(message.toString(), {
+    // match Sentry payload
+    context,
+    ...prepareMetadata(metadata),
+  })
+}