Hyperlinkv0.8.0-beta.28

Logger

Logger.makeconsteffect/Logger.ts:476
<Message, Output>(log: (options: Options<Message>) => Output): Logger<
  Message,
  Output
>

Creates a new Logger from a log function.

Details

The log function receives an options object containing the message, log level, cause, fiber information, and timestamp, and should return the desired output.

Example (Creating loggers from functions)

import { Effect, Logger, References } from "effect"

// Simple text logger
const textLogger = Logger.make((options) =>
  `${options.date.toISOString()} [${options.logLevel}] ${options.message}`
)

// Structured object logger
const objectLogger = Logger.make((options) => ({
  timestamp: options.date.toISOString(),
  level: options.logLevel,
  message: options.message,
  fiberId: options.fiber.id,
  annotations: options.fiber.getRef(References.CurrentLogAnnotations)
}))

// Custom filtering logger
const filteredLogger = Logger.make((options) => {
  if (options.logLevel === "Debug") {
    return // Skip debug messages
  }
  return `${options.logLevel}: ${options.message}`
})

const program = Effect.log("Hello World").pipe(
  Effect.provide(Logger.layer([textLogger]))
)
constructors
Source effect/Logger.ts:4763 lines
export const make: <Message, Output>(
  log: (options: Options<Message>) => Output
) => Logger<Message, Output> = effect.loggerMake