about summary refs log tree commit diff
path: root/src/logger/types.ts
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2025-02-28 12:09:36 -0600
committerGitHub <noreply@github.com>2025-02-28 12:09:36 -0600
commit7c36ea115855050f319be19bb74d6f7fd80f8eed (patch)
treeed32d674b1b74dca813ad9cac44a621313431270 /src/logger/types.ts
parent9e9ffd5c6e9e5c672f60aa10d60c6628a15ae783 (diff)
downloadvoidsky-7c36ea115855050f319be19bb74d6f7fd80f8eed.tar.zst
Logger improvements (#7729)
* Remove enablement

* Refactor context and filtering

* Fix imports, simplify transports config

* Migrate usages of debug context

* Re-org, add colors and grouping to console logging

* Remove temp default context

* Remove manual prefix

* Move colorizing out of console transport body

* Reduce reuse

* Pass through context

* Ensure bitdrift is enabled in dev

* Enable Sentry on web only

* Clean up types

* Docs

* Format

* Update tests

* Clean up tests

* No positional args

* Revert Sentry changes

* Clean up context, use it, pass metadata through to Bitdrift

* Fix up debugging

* Clean up metadata before passing to Bitdrift

* Correct transports

* Reserve context prop on metadata and include in transports

* Update tests
Diffstat (limited to 'src/logger/types.ts')
-rw-r--r--src/logger/types.ts49
1 files changed, 31 insertions, 18 deletions
diff --git a/src/logger/types.ts b/src/logger/types.ts
index 252e7373b..517893d29 100644
--- a/src/logger/types.ts
+++ b/src/logger/types.ts
@@ -1,4 +1,15 @@
-import type {Sentry} from '#/logger/sentry'
+/**
+ * DO NOT IMPORT THIS DIRECTLY
+ *
+ * Logger contexts, defined here and used via `Logger.Context.*` static prop.
+ */
+export enum LogContext {
+  Default = 'logger',
+  Session = 'session',
+  Notifications = 'notifications',
+  ConversationAgent = 'conversation-agent',
+  DMsAgent = 'dms-agent',
+}
 
 export enum LogLevel {
   Debug = 'debug',
@@ -10,6 +21,7 @@ export enum LogLevel {
 
 export type Transport = (
   level: LogLevel,
+  context: LogContext | undefined,
   message: string | Error,
   metadata: Metadata,
   timestamp: number,
@@ -21,6 +33,11 @@ export type Transport = (
  */
 export type Metadata = {
   /**
+   * Reserved for appending `LogContext` to logging payloads
+   */
+  context?: undefined
+
+  /**
    * Applied as Sentry breadcrumb types. Defaults to `default`.
    *
    * @see https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/#breadcrumb-types
@@ -43,27 +60,23 @@ export type Metadata = {
    * @see https://github.com/getsentry/sentry-javascript/blob/903addf9a1a1534a6cb2ba3143654b918a86f6dd/packages/types/src/misc.ts#L65
    */
   tags?: {
-    [key: string]:
-      | number
-      | string
-      | boolean
-      | bigint
-      | symbol
-      | null
-      | undefined
+    [key: string]: number | string | boolean | null | undefined
   }
 
   /**
    * Any additional data, passed through to Sentry as `extra` param on
    * exceptions, or the `data` param on breadcrumbs.
    */
-  [key: string]: unknown
-} & Parameters<typeof Sentry.captureException>[1]
-
-export type ConsoleTransportEntry = {
-  id: string
-  timestamp: number
-  level: LogLevel
-  message: string | Error
-  metadata: Metadata
+  [key: string]: Serializable | Error | unknown
 }
+
+export type Serializable =
+  | string
+  | number
+  | boolean
+  | null
+  | undefined
+  | Serializable[]
+  | {
+      [key: string]: Serializable
+    }