16 lines · 599 B · TypeScript
RawDownload
import { Effect, Logger, References, Layer } from "effect"; import { ServerConfig } from "./config"; export const ServerLoggerLive = Effect.gen(function* () {  const config = yield* ServerConfig;  const { serverLogPath } = config;   const fileLogger = Logger.formatSimple.pipe(Logger.toFile(serverLogPath));  const minimumLogLevelLayer = Layer.succeed(References.MinimumLogLevel, config.logLevel);  const loggerLayer = Logger.layer([Logger.consolePretty(), fileLogger], {    mergeWithExisting: false,  });   return Layer.mergeAll(loggerLayer, minimumLogLevelLayer);}).pipe(Layer.unwrap);