[javascript] Next.js에서의 로깅(Logging) 처리 방법은 어떤 것이 있나요?
-
기본 로깅 설정: Next.js는 기본적으로 개발 및 배포 모드에서 로깅을 제공합니다.
next.config.js
파일에서dev
속성을 변경하여 로그 레벨을 조절할 수 있습니다.// next.config.js module.exports = { devIndicators: { autoPrerender: false, }, env: { customKey: 'customValue', }, target: 'serverless', reactStrictMode: true, // 로깅 레벨 설정 // production: error // development: warn distDir: 'build', experimental: { modern: true, polyfillsOptimization: true, }, };
로깅 레벨은
production
모드일 때error
,development
모드일 때warn
으로 설정됩니다. -
console.log
사용: 가장 간단한 로깅 방법은console.log
를 사용하는 것입니다. 이를 이용하여 특정 시점에서 변수의 값을 확인하거나 디버깅 할 수 있습니다.console.log("로그 메시지");
하지만
console.log
는 개발 중에만 사용하고 배포된 코드에 포함시키지 않는 것이 좋습니다. -
외부 로깅 라이브러리: Next.js에서는 다양한 외부 로깅 라이브러리를 사용할 수 있습니다. 대표적으로
winston
,pino
,log4js
등이 있습니다. 이러한 라이브러리를 사용하면 로그를 파일이나 데이터베이스에 기록할 수 있고 로그 레벨 및 로그 형식을 설정할 수도 있습니다.const winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.json(), defaultMeta: { service: 'your-service-name' }, transports: [ new winston.transports.Console(), new winston.transports.File({ filename: 'logfile.log' }), ], }); logger.info('로그 메시지');
이 예시에서는
winston
로깅 라이브러리를 사용하고 있으며, 로그 레벨을info
로 설정하고 콘솔 및 파일로 로그를 출력하도록 구성하였습니다. 다른 로깅 라이브러리를 사용할 때도 비슷한 방식으로 설정할 수 있습니다.
위의 방법 중 하나를 선택하여 Next.js 애플리케이션에서 로깅 처리를 구현할 수 있습니다. 로깅은 애플리케이션을 보다 안정적이고 효율적으로 관리하는 데 도움이 되므로, 적절하게 활용하는 것이 중요합니다.
참고 자료: