Configure Lumberjack
Pass LumberjackOptions
to provideLumberjack
to change the default level filter and the text format shared by drivers.
Before you start
Section titled “Before you start”- Package installed (Installation).
-
Set root levels
Drivers inherit these levels unless they override their own
levels.import { bootstrapApplication } from '@angular/platform-browser'; import { provideLumberjack } from '@ngworker/lumberjack'; import { provideLumberjackConsoleDriver } from '@ngworker/lumberjack/console-driver'; import { AppComponent } from './app/app.component'; bootstrapApplication(AppComponent, { providers: [ provideLumberjack({ levels: ['critical', 'error', 'warn', 'info'], }), provideLumberjackConsoleDriver(), ], });Use
['verbose']to accept every level (development default). -
Optional: custom format
import { bootstrapApplication } from '@angular/platform-browser'; import { LumberjackLog, provideLumberjack } from '@ngworker/lumberjack'; import { provideLumberjackConsoleDriver } from '@ngworker/lumberjack/console-driver'; import { AppComponent } from './app/app.component'; function formatLog(log: LumberjackLog): string { return `[${log.level}] ${log.message}`; } bootstrapApplication(AppComponent, { providers: [provideLumberjack({ format: formatLog }), provideLumberjackConsoleDriver()], });
Defaults when options are omitted
Section titled “Defaults when options are omitted”| Option | Development | Production |
|---|---|---|
levels | ['verbose'] (all levels) | ['critical', 'error', 'info', 'warn'] |
format | e.g. info 2026-07-24T12:00:00.000Z [Forest App] Hello, Forest! | same shape |
The default format is
`${level} ${utcTimestamp}${scope ? ` [${scope}]` : ''} ${message}`.
Production vs development comes from Angular’s production mode flag inside
Lumberjack’s config factory.
Per-driver levels
Section titled “Per-driver levels”Override on the driver provider. Example: console stays verbose; HTTP only ships critical and error — see Send logs over HTTP.