7c36ea1158
* 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
1.1 KiB
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.