← All @molecule/* packages · App templates
@molecule/api-logger-loglevelProvider bond · logger · API (Node) · v1.0.1 · Apache-2.0
Loglevel logger provider for molecule.dev.
npm install @molecule/api-logger-loglevelnpm · Source on GitHub · Implements @molecule/api-logger
@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
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.
Loglevel logger provider for molecule.dev.
Provides a lightweight logger implementation using loglevel.
import { logger, setLogger } from '@molecule/api-logger'
import { provider } from '@molecule/api-logger-loglevel'
setLogger(provider)
logger.info('Server started on port', 3000)
provider
npm install @molecule/api-logger-loglevel @molecule/api-logger loglevel
LoggerLogger 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
}
LogLevelLog levels supported by the logger.
type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent'
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.
getLevel()Returns the current log level of the default loglevel instance.
function getLevel(): LogLevel
Returns: The current LogLevel (e.g. 'info', 'debug', 'warn').
setLevel(level)Sets the minimum log level for the default loglevel instance.
function setLevel(level: LogLevel): void
level — The molecule log level to set.levelMapMap molecule log levels to loglevel levels.
const levelMap: Record<LogLevel, loglevel.LogLevelNumbers>
logThe underlying loglevel instance.
const log: loglevel.Logger
loglevelThe underlying loglevel instance.
const loglevel: loglevel.Logger
providerThe loglevel logger provider implementing the standard interface.
const provider: Logger
Implements @molecule/api-logger interface.
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)
}
Peer dependencies:
@molecule/api-logger ^1.0.1@molecule/api-logger
loglevel
The provider passes every level through to loglevel — minimum-level
filtering happens once, in @molecule/api-logger (LOG_LEVEL env var /
setLevel(), default 'info'). Raw loglevel's own default level is WARN,
which would otherwise silently swallow logger.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's setLevel('debug') appear to do nothing.
trace delegates to console.trace, which prints a stack trace with
every call (loglevel behavior, not a bug).