@zamatica/logger-configuration
v0.1.1
Published
Configuration parameters and parsing for log levels, prefix, and color toggle. Framework-agnostic core; NestJS-specific helpers behind the /nestjs subpath.
Readme
@zamatica/logger-configuration
Configuration parameters and parsing for log levels, prefix, and color toggle. Built on @zamatica/configuration. Framework-agnostic core; NestJS-specific helpers behind the /nestjs subpath.
Install
bun add @zamatica/logger-configuration
# Optional: install only if you want the NestJS helper
bun add @nestjs/commonRegistered configuration parameters
Importing LoggerConfiguration (decorator side-effect) registers three parameters with ConfigurationService:
| Key | Type | Default | Purpose |
|------------------------|---------|-------------------------------|----------------------------------------------------|
| LOG_LEVELS | string | "fatal,error,warn,info" | Comma-separated list of visible levels. |
| LOG_PREFIX | string | falls back to env-var prefix | Prefix string for structured loggers. |
| DISABLE_LOG_COLORING | boolean | false | Strip ANSI color codes from console output. |
Canonical levels: fatal, error, warn, info, debug, verbose. Unknown levels in LOG_LEVELS are silently dropped.
Quick example (framework-agnostic)
import { LoggerConfiguration } from '@zamatica/logger-configuration';
import { ConfigurationService } from '@zamatica/configuration';
ConfigurationService.setAppEnvVarPrefix('MYAPP');
ConfigurationService.initialize();
const settings = LoggerConfiguration.parseLogSettings();
// settings.levels → ['fatal', 'error', 'warn', 'info']
// settings.prefix → 'myapp'
// settings.disableColoring → falseNestJS subpath
For NestJS apps, map canonical levels to NestJS's LogLevel (note: NestJS uses 'log' for info-level):
import { ConsoleLogger } from '@nestjs/common';
import { mapToNestJsLogLevels } from '@zamatica/logger-configuration/nestjs';
const settings = LoggerConfiguration.parseLogSettings();
const nestLevels = mapToNestJsLogLevels(settings.levels);
const logger = new ConsoleLogger({
prefix: settings.prefix,
logLevels: nestLevels,
colors: !settings.disableColoring,
});The /nestjs subpath is the only place NestJsLogLevel types appear, so non-NestJS consumers don't pull NestJS-shaped names into their type graph.
Testing the library
Tests that use this library should re-register its parameters after ConfigurationService.__resetForTesting():
import {
LOGGER_CONFIGURATION_PARAMETERS,
} from '@zamatica/logger-configuration';
beforeEach(() => {
ConfigurationService.__resetForTesting();
ConfigurationService.setAppEnvVarPrefix('TESTAPP');
ConfigurationService.register(
[...LOGGER_CONFIGURATION_PARAMETERS],
'LoggerConfiguration',
);
});