blob: f49f52c2e6b3be466592abd080e6f4f9182b814f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
// 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;
|