Skip to main content
zerotal

Documentation


Documentation / @zerotal/core / logger / LogProvider

Class: LogProvider

Defined in: provider/LogProvider.ts:52

Service provider that wires logging into the application.

Registers the log binding (a LogManager built from the logging config, enriched with the app name and environment), installs the LoggerMiddleware for per-request access logs (unless logging.requests is false), and subscribes to the core lifecycle events (AppBooted, and 4xx/5xx RequestHandled / RequestFailed) to route them through the logger. Subscriptions are torn down on stop.

Feature packages log their own activity (slow queries, job/mail/scheduler failures, the auth audit trail) through their own bridge, which resolves the log binding when logging is installed — so the logger knows nothing about them.

Extends

Constructors

Constructor

new LogProvider(app): LogProvider

Defined in: provider/ServiceProvider.ts:44

Parameters

app

Application

Returns

LogProvider

Inherited from

ServiceProvider.constructor

Properties

provides

static provides: readonly ["log"]

Defined in: provider/LogProvider.ts:53

Container tokens this provider registers. Required when using the array form of app.defer([Provider, ...]).

Example

static override provides = ['cache'] as const;

Overrides

ServiceProvider.provides


environments

static environments: AppEnvironment[]

Defined in: provider/LogProvider.ts:54

Environments in which this provider is active. Defaults to all of them.

Overrides

ServiceProvider.environments


dependsOn?

static optional dependsOn?: (app) => ServiceProvider[]

Defined in: provider/ServiceProvider.ts:35

Other providers this one needs. They are pulled into the application automatically (transitively, de-duplicated) and guaranteed to boot before this provider — so you only have to register the feature you want, not its plumbing. Reference the provider classes directly:

Parameters

app

Application

Returns

ServiceProvider

Example

static override dependsOn = [FlowProvider];

Inherited from

ServiceProvider.dependsOn


priority?

static optional priority?: number

Defined in: provider/ServiceProvider.ts:42

Boot-order tiebreak among providers with no dependsOn relationship. Lower boots earlier; defaults to 0. Handy for framework-core providers (e.g. static override priority = -100).

Inherited from

ServiceProvider.priority


app

protected app: Application

Defined in: provider/ServiceProvider.ts:44

Inherited from

ServiceProvider.app

Methods

onRegister()

onRegister(): void

Defined in: provider/LogProvider.ts:58

Register container bindings. Runs before any provider boots; do not resolve services here.

Returns

void

Overrides

ServiceProvider.onRegister


onBooting()

onBooting(): Promise<void>

Defined in: provider/LogProvider.ts:69

Resolve and prepare services before the app is considered booted.

Returns

Promise<void>

Overrides

ServiceProvider.onBooting


onBooted()

onBooted(): Promise<void>

Defined in: provider/LogProvider.ts:81

Run once all providers have booted and every binding is available.

Returns

Promise<void>

Overrides

ServiceProvider.onBooted


onStopping()

onStopping(): Promise<void>

Defined in: provider/LogProvider.ts:132

Run when the app begins a graceful shutdown; release resources here.

Returns

Promise<void>

Overrides

ServiceProvider.onStopping


onStarting()

onStarting(): Promise<void>

Defined in: provider/ServiceProvider.ts:53

Run just before the app starts accepting work (e.g. the HTTP server).

Returns

Promise<void>

Inherited from

ServiceProvider.onStarting


onStarted()

onStarted(): Promise<void>

Defined in: provider/ServiceProvider.ts:55

Run once the app has started.

Returns

Promise<void>

Inherited from

ServiceProvider.onStarted


onStopped()

onStopped(): Promise<void>

Defined in: provider/ServiceProvider.ts:59

Run once shutdown is complete.

Returns

Promise<void>

Inherited from

ServiceProvider.onStopped


onRequestReceived()

onRequestReceived(_ctx): Promise<void>

Defined in: provider/ServiceProvider.ts:66

Called before the middleware pipeline runs.

Parameters

_ctx

HttpContext

Returns

Promise<void>

Inherited from

ServiceProvider.onRequestReceived


onRequestProcessed()

onRequestProcessed(_ctx): Promise<void>

Defined in: provider/ServiceProvider.ts:69

Called after the pipeline completes and ctx.response is set.

Parameters

_ctx

HttpContext

Returns

Promise<void>

Inherited from

ServiceProvider.onRequestProcessed


onResponseSent()

onResponseSent(_ctx): Promise<void>

Defined in: provider/ServiceProvider.ts:72

Called after the response has been sent to the client.

Parameters

_ctx

HttpContext

Returns

Promise<void>

Inherited from

ServiceProvider.onResponseSent


replContext()

replContext(): Record<string, unknown>

Defined in: provider/ServiceProvider.ts:81

Variables to expose in bun zt repl. Override in any provider to make its facades available by name in the REPL session.

Returns

Record<string, unknown>

Example

override replContext() { return { DB, Mail }; }

Inherited from

ServiceProvider.replContext