about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2025-02-28 12:46:27 -0600
committerGitHub <noreply@github.com>2025-02-28 12:46:27 -0600
commit36a7a8d8c68fc1d3d3fd396dd9f705c966552fcb (patch)
tree1554dd9e960937c2fa2ba3941fc12cf8801a8bbd
parent7c36ea115855050f319be19bb74d6f7fd80f8eed (diff)
downloadvoidsky-36a7a8d8c68fc1d3d3fd396dd9f705c966552fcb.tar.zst
Colocate bitdrift in logger, use logger for transport (#7868)
* Colocate bitdrift in logger, use logger for transport

(cherry picked from commit cdd6941fd7f6de9829d61712340a30a55936d2ee)

* Fix mocks, format

(cherry picked from commit 9de88660c6217ebe7f83e3abfb198f85e26d9c53)

* Ok I guess mocks dir doesn't work

(cherry picked from commit 9f37e52011d2794ad8fcd732eb26558e9f0ef42c)
-rw-r--r--jest/jestSetup.js2
-rw-r--r--src/App.native.tsx2
-rw-r--r--src/lib/statsig/statsig.tsx7
-rw-r--r--src/logger/bitdrift/lib/index.ts1
-rw-r--r--src/logger/bitdrift/lib/index.web.ts (renamed from src/lib/bitdrift.web.ts)0
-rw-r--r--src/logger/bitdrift/setup/index.ts (renamed from src/lib/bitdrift.ts)4
-rw-r--r--src/logger/bitdrift/setup/index.web.ts0
-rw-r--r--src/logger/index.ts5
-rw-r--r--src/logger/transports/bitdrift.ts17
9 files changed, 15 insertions, 23 deletions
diff --git a/jest/jestSetup.js b/jest/jestSetup.js
index c3160df3b..d303225f6 100644
--- a/jest/jestSetup.js
+++ b/jest/jestSetup.js
@@ -119,5 +119,5 @@ jest.mock('statsig-react-native-expo', () => ({
   },
 }))
 
-jest.mock('../src/lib/bitdrift', () => ({}))
+jest.mock('../src/logger/bitdrift/lib', () => ({}))
 jest.mock('../src/lib/statsig/statsig', () => ({}))
diff --git a/src/App.native.tsx b/src/App.native.tsx
index 63284d5d5..9c3167255 100644
--- a/src/App.native.tsx
+++ b/src/App.native.tsx
@@ -1,6 +1,6 @@
 import 'react-native-url-polyfill/auto'
 import '#/logger/sentry/setup'
-import '#/lib/bitdrift' // must be near top
+import '#/logger/bitdrift/setup'
 import '#/view/icons'
 
 import React, {useEffect, useState} from 'react'
diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx
index fb85e4356..a64c710ea 100644
--- a/src/lib/statsig/statsig.tsx
+++ b/src/lib/statsig/statsig.tsx
@@ -4,7 +4,6 @@ import {AppState, AppStateStatus} from 'react-native'
 import {Statsig, StatsigProvider} from 'statsig-react-native-expo'
 
 import {BUNDLE_DATE, BUNDLE_IDENTIFIER, IS_TESTFLIGHT} from '#/lib/app-info'
-import * as bitdrift from '#/lib/bitdrift'
 import {logger} from '#/logger'
 import {isWeb} from '#/platform/detection'
 import * as persisted from '#/state/persisted'
@@ -102,11 +101,7 @@ export function logEvent<E extends keyof LogEvents>(
     if (Statsig.initializeCalled()) {
       Statsig.logEvent(eventName, null, fullMetadata)
     }
-    // Intentionally bypass the logger abstraction to log rich objects.
-    console.groupCollapsed(eventName)
-    console.log(fullMetadata)
-    console.groupEnd()
-    bitdrift.info(eventName, fullMetadata)
+    logger.info(eventName, fullMetadata)
   } catch (e) {
     // A log should never interrupt the calling code, whatever happens.
     logger.error('Failed to log an event', {message: e})
diff --git a/src/logger/bitdrift/lib/index.ts b/src/logger/bitdrift/lib/index.ts
new file mode 100644
index 000000000..fccd2c57a
--- /dev/null
+++ b/src/logger/bitdrift/lib/index.ts
@@ -0,0 +1 @@
+export {debug, error, info, warn} from '@bitdrift/react-native'
diff --git a/src/lib/bitdrift.web.ts b/src/logger/bitdrift/lib/index.web.ts
index 5db69450f..5db69450f 100644
--- a/src/lib/bitdrift.web.ts
+++ b/src/logger/bitdrift/lib/index.web.ts
diff --git a/src/lib/bitdrift.ts b/src/logger/bitdrift/setup/index.ts
index 98f2dd11e..d6af3fe24 100644
--- a/src/lib/bitdrift.ts
+++ b/src/logger/bitdrift/setup/index.ts
@@ -1,9 +1,7 @@
 import {init, SessionStrategy} from '@bitdrift/react-native'
 import {Statsig} from 'statsig-react-native-expo'
 
-import {initPromise} from './statsig/statsig'
-
-export {debug, error, info, warn} from '@bitdrift/react-native'
+import {initPromise} from '#/lib/statsig/statsig'
 
 const BITDRIFT_API_KEY = process.env.BITDRIFT_API_KEY
 
diff --git a/src/logger/bitdrift/setup/index.web.ts b/src/logger/bitdrift/setup/index.web.ts
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/logger/bitdrift/setup/index.web.ts
diff --git a/src/logger/index.ts b/src/logger/index.ts
index 70b7ee8be..410d29bb3 100644
--- a/src/logger/index.ts
+++ b/src/logger/index.ts
@@ -6,11 +6,14 @@ import {consoleTransport} from '#/logger/transports/console'
 import {sentryTransport} from '#/logger/transports/sentry'
 import {LogContext, LogLevel, Metadata, Transport} from '#/logger/types'
 import {enabledLogLevels} from '#/logger/util'
+import {isNative} from '#/platform/detection'
 
 const TRANSPORTS: Transport[] = (function configureTransports() {
   switch (process.env.NODE_ENV) {
     case 'production': {
-      return [sentryTransport, bitdriftTransport].filter(Boolean) as Transport[]
+      return [sentryTransport, isNative && bitdriftTransport].filter(
+        Boolean,
+      ) as Transport[]
     }
     case 'test': {
       return []
diff --git a/src/logger/transports/bitdrift.ts b/src/logger/transports/bitdrift.ts
index 6e335f29c..cf125c6e2 100644
--- a/src/logger/transports/bitdrift.ts
+++ b/src/logger/transports/bitdrift.ts
@@ -1,18 +1,13 @@
-import {
-  debug as bdDebug,
-  error as bdError,
-  info as bdInfo,
-  warn as bdWarn,
-} from '#/lib/bitdrift'
+import {debug, error, info, warn} from '#/logger/bitdrift/lib'
 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,
+  [LogLevel.Debug]: debug,
+  [LogLevel.Info]: info,
+  [LogLevel.Log]: info,
+  [LogLevel.Warn]: warn,
+  [LogLevel.Error]: error,
 } as const
 
 export const bitdriftTransport: Transport = (