@molecule/api-logger-loglevel
Provider bond · logger · API (Node) · v1.0.2 · Apache-2.0
Loglevel logger provider for molecule.dev.
npm install @molecule/api-logger-loglevelnpm · Source on GitHub · Implements @molecule/api-logger
How it works
@molecule/api-logger-loglevel is a provider bond on the API (Node) side: it implements the logger core interface (@molecule/api-logger) with a concrete vendor or library behind it.
Your code calls the core; you wire this provider once at startup. Swapping vendors later is one line in that wiring, not a rewrite.
import { logger, setLogger } from '@molecule/api-logger'
import { provider } from '@molecule/api-logger-loglevel'
setLogger(provider)
logger.info('Server started on port', 3000)Works with: @molecule/api-logger
Reference
Loglevel logger provider for molecule.dev.
Provides a lightweight logger implementation using loglevel.
Auto-generated, AI-first package reference for the molecule.dev ecosystem. It is written to be read by coding agents as much as by people, and is generated from this package's source — edit
src/index.tsJSDoc, not this file.
Quick Start
import { logger, setLogger } from '@molecule/api-logger'
import { provider } from '@molecule/api-logger-loglevel'
setLogger(provider)
logger.info('Server started on port', 3000)
Type
provider
Installation
npm install @molecule/api-logger-loglevel @molecule/api-logger loglevel
API
Interfaces
Logger
Logger interface that all implementations must satisfy.
interface Logger {
trace(...args: unknown[]): void
debug(...args: unknown[]): void
info(...args: unknown[]): void
warn(...args: unknown[]): void
error(...args: unknown[]): void
}
Types
LogLevel
Log levels supported by the logger.
type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent'
Functions
setLevel(level)
Sets the minimum log level for the default loglevel instance.
function setLevel(level: LogLevel): void
level— The molecule log level to set.
getLevel()
Returns the current log level of the default loglevel instance.
function getLevel(): LogLevel
Returns: The current LogLevel (e.g. 'info', 'debug', 'warn').
createLogger(options)
Creates a named loglevel logger that implements the Logger interface.
Without an explicit level, the instance is set to pass everything through
(TRACE) — loglevel's own out-of-the-box default is WARN, which silently
swallows info/debug and makes the logger look broken. Level filtering
belongs to @molecule/api-logger's single gate (LOG_LEVEL / setLevel(),
default 'info'); pass level here only to add a bond-side gate on top.
Note: loglevel caches instances by name, so createLogger({ name }) with an
already-used name returns (and re-levels) that same shared instance.
function createLogger(options?: { level?: LogLevel; name?: string }): Logger
options— Logger configuration.options.level— The minimum log level. Defaults to pass-through ('trace').options.name— The logger name (used to create a named loglevel instance).
Returns: A Logger backed by loglevel.
Constants
levelMap
Map molecule log levels to loglevel levels.
const levelMap: Record<LogLevel, loglevel.LogLevelNumbers>
loglevel
The underlying loglevel instance.
const loglevel: loglevel.Logger
log
The underlying loglevel instance.
const log: loglevel.Logger
provider
The loglevel logger provider implementing the standard interface.
const provider: Logger
Core Interface
Implements @molecule/api-logger interface.
Bond Wiring
Setup function to register this provider with the core interface:
import { setLogger } from '@molecule/api-logger'
import { provider } from '@molecule/api-logger-loglevel'
export function setupLoggerLoglevel(): void {
setLogger(provider)
}
Injection Notes
Requirements
Peer dependencies:
@molecule/api-logger^1.0.1
Runtime Dependencies
-
@molecule/api-logger -
loglevel -
The provider passes every level through to loglevel — minimum-level filtering happens once, in
@molecule/api-logger(LOG_LEVELenv var /setLevel(), default'info'). Raw loglevel's own default level is WARN, which would otherwise silently swallowlogger.info(...)out of the box. -
Use this package's
setLevel()/createLogger({ level })only when you want an ADDITIONAL bond-side gate below the core's — a stricter level here makes the core'ssetLevel('debug')appear to do nothing. -
tracedelegates toconsole.trace, which prints a stack trace with every call (loglevel behavior, not a bug).