From 63249533940fa895fd43f72d27c6ea175bc0528b Mon Sep 17 00:00:00 2001 From: saopig1 Date: Mon, 30 Mar 2026 00:18:09 +0800 Subject: [PATCH] feat: add pino logger with file and stdout transports Co-Authored-By: Claude Opus 4.6 (1M context) --- src/logger.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/logger.ts diff --git a/src/logger.ts b/src/logger.ts new file mode 100644 index 0000000..d857d1a --- /dev/null +++ b/src/logger.ts @@ -0,0 +1,28 @@ +import pino from "pino"; +import { mkdirSync } from "node:fs"; +import { join } from "node:path"; + +export function createLogger(logDir?: string): pino.Logger { + if (!logDir) { + return pino({ level: "info" }); + } + + mkdirSync(logDir, { recursive: true }); + + const transport = pino.transport({ + targets: [ + { + target: "pino/file", + options: { destination: 1 }, // stdout + level: "info", + }, + { + target: "pino/file", + options: { destination: join(logDir, "bot.log"), mkdir: true }, + level: "debug", + }, + ], + }); + + return pino({ level: "debug" }, transport); +}