Files
bsky-social-app/src/logger/README.md
T
Eric Bailey 7c36ea1158 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
2025-02-28 12:09:36 -06:00

1.1 KiB

Logger

Simple logger for Bluesky.

At a Glance

import { logger, Logger } from '#/logger'

// or, optionally create new instance with custom context
// const logger = Logger.create(Logger.Context.Notifications)

// for dev-only logs
logger.debug(message, {})

// for production breadcrumbs
logger.info(message, {})

// seldom used, prefer `info`
logger.log(message, {})

// for non-error issues to look into, seldom used, prefer `error`
logger.warn(message, {})

// for known errors without an exception, use a string
logger.error(`known error`, {})

// for unknown exceptions
try {
} catch (e) {
  logger.error(e, {message: `explain error`}])
}

Log Levels

Log level defaults to info. You can set this via the EXPO_PUBLIC_LOG_LEVEL env var in .env.local.

Filtering debugs by context

Debug logs are dev-only, and not enabled by default. Once enabled, they can get noisy. So you can filter them by setting the EXPO_PUBLIC_LOG_DEBUG env var e.g. EXPO_PUBLIC_LOG_DEBUG=notifications. These values can be comma-separated and include wildcards.