about summary refs log tree commit diff
path: root/src/logger/util.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/util.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/util.ts')
-rw-r--r--src/logger/util.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/logger/util.ts b/src/logger/util.ts
new file mode 100644
index 000000000..f1e12b164
--- /dev/null
+++ b/src/logger/util.ts
@@ -0,0 +1,29 @@
+import {LogLevel, Metadata, Serializable} from '#/logger/types'
+
+export const enabledLogLevels: {
+  [key in LogLevel]: LogLevel[]
+} = {
+  [LogLevel.Debug]: [
+    LogLevel.Debug,
+    LogLevel.Info,
+    LogLevel.Log,
+    LogLevel.Warn,
+    LogLevel.Error,
+  ],
+  [LogLevel.Info]: [LogLevel.Info, LogLevel.Log, LogLevel.Warn, LogLevel.Error],
+  [LogLevel.Log]: [LogLevel.Log, LogLevel.Warn, LogLevel.Error],
+  [LogLevel.Warn]: [LogLevel.Warn, LogLevel.Error],
+  [LogLevel.Error]: [LogLevel.Error],
+}
+
+export function prepareMetadata(
+  metadata: Metadata,
+): Record<string, Serializable> {
+  return Object.keys(metadata).reduce((acc, key) => {
+    let value = metadata[key]
+    if (value instanceof Error) {
+      value = value.toString()
+    }
+    return {...acc, [key]: value}
+  }, {})
+}