// lib/logger.ts import pino from 'pino'; import fs from 'fs'; // 로그 디렉토리 생성 const logDirectory = './logs'; if (!fs.existsSync(logDirectory)) { fs.mkdirSync(logDirectory); } // 파일 스트림 설정 const fileStream = fs.createWriteStream('./logs/app.log', { flags: 'a' }); // Pino의 multistream을 사용한 멀티 스트림 설정 const streams: pino.StreamEntry[] = [ { level: 'info', stream: fileStream }, // 파일에 로그 기록 process.env.NODE_ENV !== 'production' ? { level: 'debug', stream: pino.destination(1) } : null, // 콘솔에 로그 기록 (개발 환경) ].filter(Boolean) as pino.StreamEntry[]; // Pino 로거 생성 const logger = pino({ timestamp: pino.stdTimeFunctions.isoTime, level: process.env.LOG_LEVEL || 'info', }, pino.multistream(streams)); export default logger;