effect-io-ai

Package: effect
Module: Logger

Logger.map

Transforms the output of a Logger using the provided function.

When to use

Use when an existing logger’s output should be transformed without recreating the logging logic.

Example (Transforming logger output)

import { Logger } from "effect"

// Create a logger that outputs objects
const structuredLogger = Logger.make((options) => ({
  level: options.logLevel,
  message: options.message,
  timestamp: options.date.toISOString()
}))

// Transform the output to JSON strings
const jsonStringLogger = Logger.map(
  structuredLogger,
  (output) => JSON.stringify(output)
)

// Transform to uppercase messages
const uppercaseLogger = Logger.map(
  structuredLogger,
  (output) => ({ ...output, message: String(output.message).toUpperCase() })
)

Signature

declare const map: (<Output, Output2>(f: (output: Output) => Output2) => <Message>(self: Logger<Message, Output>) => Logger<Message, Output2>) & (<Message, Output, Output2>(self: Logger<Message, Output>, f: (output: Output) => Output2) => Logger<Message, Output2>)

Source

Since v2.0.0