Skip to content

@effect-aws/powertools-logger

npm versionnpm downloads

Installation

bash
npm install --save @effect-aws/powertools-logger @aws-lambda-powertools/logger

Note: @aws-lambda-powertools/logger is a peer dependency and package supports v1.9.0 and higher.

Usage

With default PowerTools Logger instance:

typescript
import { pipe } from "effect/Function"
import * as Effect from "effect/Effect"
import { Logger } from "@effect-aws/powertools-logger"

const program = pipe(
  Logger.logInfo("Info message with log meta", { foo: "bar" }),
  Effect.tap(() => Effect.logInfo("Native effect info message"))
)

const result = pipe(
  program,
  Effect.provide(Logger.defaultLayer),
  Effect.runPromise
)

With custom PowerTools Logger options:

typescript
import { pipe } from "effect/Function"
import * as Effect from "effect/Effect"
import { Logger } from "@effect-aws/powertools-logger"

const program = pipe(
  Logger.logDebug("Debug message with log meta", { foo: "bar" }),
  Effect.tap(() => Effect.logDebug("Native effect debug message"))
)

const result = pipe(
  program,
  Effect.provide(Logger.layer({ logLevel: "DEBUG" })),
  Effect.runPromise
)

With custom PowerTools Logger instance:

typescript
import { Logger as LoggerCtor } from "@aws-lambda-powertools/logger"
import { pipe } from "effect/Function"
import * as Effect from "effect/Effect"
import { Logger } from "@effect-aws/powertools-logger"

const program = pipe(
  Logger.logDebug("Debug message with log meta", { foo: "bar" }),
  Effect.tap(() => Effect.logDebug("Native effect debug message"))
)

const result = pipe(
  program,
  Effect.provide(Logger.baseLayer(() => new LoggerCtor({ logLevel: "DEBUG" })),
  Effect.runPromise
)

Released under the MIT License.