20 lines · 548 B · TypeScript
RawDownload
import fs from "node:fs"; import { Effect, Logger } from "effect";import * as Layer from "effect/Layer"; import { ServerConfig } from "./config"; export const ServerLoggerLive = Effect.gen(function* () {  const { logsDir, serverLogPath } = yield* ServerConfig;   yield* Effect.sync(() => {    fs.mkdirSync(logsDir, { recursive: true });  });   const fileLogger = Logger.formatSimple.pipe(Logger.toFile(serverLogPath));   return Logger.layer([Logger.defaultLogger, fileLogger], {    mergeWithExisting: false,  });}).pipe(Layer.unwrap);