Skip to content

Logger

const Logger: object

Defined in: src/Runtime.ts:269

Pre-configured Effect Logger layers for the Midday SDK.

Provides ready-to-use logging configurations that can be applied to any Effect program via Effect.provide().

Type Declaration

Default

Default: Layer<never, never, never> = EffectLogger.pretty

Default SDK logger (pretty in development).

Since

0.3.0

json

json: Layer<never, never, never> = EffectLogger.json

JSON structured logger. Best for production and log aggregation systems.

Since

0.3.0

logFmt

logFmt: Layer<never, never, never> = EffectLogger.logFmt

Logfmt logger (key=value format). Compatible with many log analysis tools.

Since

0.3.0

none

none: Layer<never, never, never>

No-op logger that discards all messages. Use when logging should be completely disabled.

Since

0.3.0

pretty

pretty: Layer<never, never, never> = EffectLogger.pretty

Pretty console logger with colors and formatting. Best for development.

Since

0.3.0

withDebug

withDebug: Layer<never, never, never>

Set minimum log level to Debug (shows all messages).

Since

0.3.0

withError

withError: Layer<never, never, never>

Set minimum log level to Error.

Since

0.3.0

withInfo

withInfo: Layer<never, never, never>

Set minimum log level to Info (default).

Since

0.3.0

withWarning

withWarning: Layer<never, never, never>

Set minimum log level to Warning.

Since

0.3.0

fromEnabled()

fromEnabled(enabled): Layer<never>

Create a logger layer based on enabled flag. Provides backwards compatibility with the logging: boolean option.

When enabled: pretty logger + Debug level visible When disabled: pretty logger only (Debug hidden by default)

Parameters

enabled

boolean

Whether debug logging is enabled

Returns

Layer<never>

Logger layer

Since

0.3.0

Example

import { Effect } from 'effect';
import * as Midday from '@no-witness-labs/midday-sdk';
const program = Effect.gen(function* () {
yield* Effect.logInfo('Hello');
yield* Effect.logDebug('Debug info');
});
// Pretty console output (development)
Effect.runFork(program.pipe(Effect.provide(Midday.Runtime.Logger.pretty)));
// JSON output (production)
Effect.runFork(program.pipe(Effect.provide(Midday.Runtime.Logger.json)));
// Show debug messages
Effect.runFork(program.pipe(Effect.provide(Midday.Runtime.Logger.withDebug)));
// Disable all logging
Effect.runFork(program.pipe(Effect.provide(Midday.Runtime.Logger.none)));

Since

0.3.0