@hyperfrontend/project-scope/core/loggerlogger
Scoped logger built on @hyperfrontend/logging with namespace prefixes, automatic secret sanitization, and a global log level registry.
createScopedLogger(namespace, options?) returns a frozen logger whose output is prefixed with [namespace] and whose metadata objects are recursively scrubbed for sensitive keys (matching patterns like token, key, password, secret, credential, auth, bearer, api_key, private, passphrase). All loggers register themselves so setGlobalLogLevel can flip verbosity across the entire library at once. A default logger instance scoped to project-scope is exported for general use.
API Reference
ƒ Functions
Creates a scoped logger with namespace prefix and optional secret sanitization. All log messages will be prefixed with [namespace] and sensitive metadata values will be automatically redacted.
Parameters
Returns
ScopedLoggerA configured scoped logger instance
Example
Creating a scoped logger
const logger = createScopedLogger('project-scope')
logger.setLogLevel('debug')
// Basic logging
logger.info('Starting analysis', { path: './project' })
// Sensitive data is automatically redacted
logger.debug('Config loaded', { apiKey: 'secret123' })
// Output: [project-scope] Config loaded {"apiKey":"[REDACTED]"}Get the current global log level.
Returns
LogLevelThe global log level, or null if not set
Example
Getting current log level
setGlobalLogLevel('debug')
const level = getGlobalLogLevel()
// => 'debug'Reset the global log level override. Each logger will retain its current level but new loggers will use their default.
Example
Resetting the global log level
setGlobalLogLevel('debug')
// ... perform debugging ...
resetGlobalLogLevel()
// Global override removed, loggers use individual levelsSanitizes an object by replacing sensitive values with REDACTED. This function recursively processes nested objects and arrays.
Parameters
| Name | Type | Description |
|---|---|---|
§obj | unknown | Object to sanitize |
Returns
unknownNew object with sensitive values redacted
Example
Sanitizing sensitive data
const config = { apiKey: 'secret123', endpoint: 'https://api.example.com' }
const safe = sanitize(config)
// => { apiKey: '[REDACTED]', endpoint: 'https://api.example.com' }Set the log level for all registered scoped loggers. This is useful for enabling verbose logging across the entire library.
Parameters
| Name | Type | Description |
|---|---|---|
§level | LogLevel | The log level to set globally |
Example
Enabling debug logging globally
import { setGlobalLogLevel } from '@hyperfrontend/project-scope/core'
// Enable debug logging for all project-scope modules
setGlobalLogLevel('debug')◈ Interfaces
A scoped logger instance with namespace prefix and secret sanitization.
Properties
◆ Types
Valid log level values in order of verbosity
type LogLevel = "none" | "error" | "warn" | "log" | "info" | "debug"● Variables
Default logger instance for the project-scope library. Use this for general logging within the library.