NestJs Winston FileLogging

까망거북·2024년 10월 23일


winston의 기능으로 파일을 분리 하려고 하니 뭔가 아쉬운 부분이 있다.
(날짜별 분리라던가 등등)

필요 모듈 설치

npm i winston-daily-rotate-file

사용

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as winstonDaily from 'winston-daily-rotate-file';
import * as winston from 'winston';
import {
  WinstonModule,
  utilities as nestWinstonMoluleUtilties,
} from 'nest-winston';
async function bootstrap() {
  const app = await NestFactory.create(AppModule, {
    logger: WinstonModule.createLogger({
      transports: [
        new winston.transports.Console({
          level: 'silly',
          format: winston.format.combine(
            winston.format.timestamp(),
            winston.format.ms(),
            nestWinstonMoluleUtilties.format.nestLike('MyApp', {
              colors: true,
              prettyPrint: true,
              appName: true,
            }),
          ),
        }),
        new winstonDaily({ +
          level: 'silly', +
          dirname: 'logs', +
          datePattern: 'YYYY.MM.DD', +
          filename: 'dailylog-%DATE%.log', +
          maxSize: '0.1m',  +// 0.1MB
          format: winston.format.combine( +
            winston.format.timestamp(), +
            winston.format.ms(), +
            nestWinstonMoluleUtilties.format.nestLike('MyApp', { +
              colors: false, +
              prettyPrint: true, +
              processId: true, +
              appName: true, +
            }), +
          ), +
        }), +
      ],
    }),
  });

  await app.listen(process.env.PORT ?? 3000);
  const port = app.getHttpServer().address().port;
  console.log(`Application is running on port: ${port}`);
)
bootstrap();

0개의 댓글