Default Log Level Manager
The Default Log Level Manager is the base log level manager used by LogLayer. It provides independent log level management for each logger instance, with children inheriting the initial log level from their parent.
Batteries included
This log level manager is automatically used when creating a new LogLayer instance. You should not need to use this log level manager directly.
Installation
This package is included with the loglayer package, so you don't need to install it separately.
It is, however, available as a standalone package:
bash
npm install @loglayer/log-level-managerbash
yarn add @loglayer/log-level-managerbash
pnpm add @loglayer/log-level-managerUsage
Basic Usage
typescript
import { LogLayer, ConsoleTransport, LogLevel } from "loglayer";
import { DefaultLogLevelManager } from "@loglayer/log-level-manager";
const logger = new LogLayer({
transport: new ConsoleTransport({
logger: console
})
// NOTE: This is redundant and unnecessary since DefaultLogLevelManager is already
// the default log level manager when LogLayer is created.
}).withLogLevelManager(new DefaultLogLevelManager());
// Set log level
logger.setLevel(LogLevel.warn);
// Log with different levels
logger.info('This will not be logged'); // Not logged
logger.warn('This will be logged'); // LoggedChild Loggers
With the Default Log Level Manager, child loggers inherit the log level from their parent when created, but subsequent changes to the parent's log level do not affect existing children:
typescript
import { LogLayer, ConsoleTransport, LogLevel } from "loglayer";
const parentLog = new LogLayer({
transport: new ConsoleTransport({
logger: console
})
});
// Set parent log level
parentLog.setLevel(LogLevel.warn);
// Create child - inherits parent's log level (warn)
const childLog = parentLog.child();
// Change parent log level
parentLog.setLevel(LogLevel.debug);
// Child is not affected - still at warn level
childLog.info('This will not be logged'); // Not logged (child still at warn)
parentLog.info('This will be logged'); // Logged (parent changed to debug)Behavior
- Initial Inheritance: When a child logger is created, it inherits the current log level from its parent
- Independent Changes: After creation, parent and child loggers maintain independent log level settings
- No Propagation: Changes to the parent's log level do not propagate to existing children
