[javascript] 에러 발생 시 로그 기록 방법

Javascript에서 에러가 발생하는 경우, 이를 확인하고 분석하기 위해서는 로그를 기록하는 것이 중요합니다. 로그를 기록하면 에러가 발생한 시점의 상황을 기록하여 디버깅에 유용하게 사용할 수 있습니다. 이번 글에서는 Javascript에서 에러 발생 시 로그를 기록하는 몇 가지 방법을 알아보겠습니다.

1. console.log를 이용한 방법

Sam의 console.log를 사용하여 에러를 기록하는 방법이 가장 간단하고 일반적입니다.

try {
  // 에러가 발생할 수 있는 코드
} catch (error) {
  console.log('에러 발생:', error);
}

try-catch 구문을 사용하여 에러가 발생할 수 있는 부분을 감싸고, catch 블록에서 console.log를 통해 에러를 출력합니다.

2. console.error를 이용한 방법

console.error는 console.log와 유사하지만 에러를 더 강조하여 출력한다는 점이 다릅니다.

try {
  // 에러가 발생할 수 있는 코드
} catch (error) {
  console.error('에러 발생:', error);
}

console.error를 사용하면 에러를 보다 명확하게 출력할 수 있습니다.

3. 서버 측 로깅

Javascript가 서버 측에서 실행되는 경우에는 로깅 라이브러리를 사용하여 에러를 기록하는 것이 좋습니다. 대표적인 로깅 라이브러리로는 Winston, Bunyan, Pino 등이 있습니다. 이러한 라이브러리는 서버에 에러가 발생했을 때, 파일이나 데이터베이스에 에러를 기록하는 기능을 제공합니다.

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
  ],
});

try {
  // 에러가 발생할 수 있는 코드
} catch (error) {
  logger.error('에러 발생:', error);
}

Winston을 사용하는 예제에서는 error.log 파일에 에러를 기록하도록 설정하였습니다.

4. 클라이언트 측 로깅

클라이언트 측에서 발생한 에러를 기록하기 위해서는 전용 로깅 서비스를 사용하는 것이 좋습니다. Sentry, Bugsnag 등의 서비스를 활용하면 클라이언트에서 발생한 에러를 웹 대시보드에서 확인할 수 있습니다.

try {
  // 에러가 발생할 수 있는 코드
} catch (error) {
  // 전용 로깅 서비스로 에러 보내기
  logErrorToService(error);
}

위 예제에서는 logErrorToService 함수를 사용하여 에러를 클라이언트 측 로깅 서비스로 전송하는 것을 보여줍니다.

정리

Javascript에서 에러 발생 시 로그를 기록하는 방법에 대해 알아보았습니다. console.log, console.error를 사용하여 간단하게 에러를 출력할 수도 있고, 서버 측 로깅 라이브러리를 활용하여 파일이나 데이터베이스에 기록하는 방법도 있습니다. 클라이언트 측에서는 전용 로깅 서비스를 사용하여 에러를 모니터링할 수 있습니다. 앞으로 에러 처리와 디버깅을 위해 로그를 적절히 활용해 보시기 바랍니다.

참고 문서: