[Spring] 애플리케이션 로깅(Logging)

류넹·2024년 3월 5일
1

Spring

목록 보기
23/50

📍 애플리케이션 로깅(Logging)

  • 로깅 : 애플리케이션 실행 정보를 제공하는 일련의 기록인 로그(log)를 생성시키는 것

사용 목적

  • 애플리케이션 실행 중 문제가 발생했을 때, 문제의 원인을 파악하기 위한 정보를 제공한다.

사용 이점

  • 로그는 애플리케이션 실행과 관련된 유용한 정보를 제공할 수 있다.
    • 실행날짜와 시간, 로그레벨, 스레드명, 패키지 및 클래스명, 메서드명, 행번호, 로그메시지 등
  • 출력형식을 쉽게 변경할 수 있다.
  • 로그 출력레벨에 따라서 로그 출력을 조절할 수 있다.
  • 다양한 방식으로 로그를 출력할 수 있다.
    • 콘솔화면에 출력
    • 파일에 출력



📌 로그 출력 레벨

  1. TRACE : 자세한 정보
  2. DEBUG : 디버깅 정보
  3. INFO : 정보
  4. WARN : 경고
  5. ERROR : 오류
  6. FATAL : 심각한 오류
  • 로그출력레벨을 TRACE로 지정 시
    • log.trace(메시지), log.debug(메시지), log.info(메시지), ..., log.fatal(메시지)로 출력하는 모든 로고 출력
  • 로그출력레벨을 ERROR로 지정 시
    • log.error(메시지), log.fatal(메시지)로 출력하는 모든 로그 출력
  • 개발 단계 : 로그레벨을 TRACE나 DEBUG로 설정해서 자세한 로그를 출력시키고, 디버깅에 활용한다.
  • 운영 단계 : 레벨을 ERROR로 설정해서 불필요한 로그를 출력시키지 않고, 에러 발생 시에만 출력되도록 한다.
  • 레벨별 로그 내용
    • log.debug(메시지)
      • 프로그램 실행과 관련된 상세한 정보를 출력시킨다.
    • log.info(메시지)
      • 애플리케이션 정상 실행 여부를 확인할 수 있는 중요한 정보를 출력시킨다.
    • log.error(메시지)
      • 오류 발생 시 오류정보를 출력시킨다.
// 회원가입 기능
public void registerUser(String user) {
	log.debug("회원가입 기능 시작");
    log.info("신규 회원정보: " + user);
    
    User savedUser = userMapper.getUserById(user.getId);
    log.debug("조회된 회원정보: " + savedUser);
    if (savedUser != null) {
    	log.debug("[" + user.getId() + "] 사용자가 이미 존재한다.")
    	throws new RuntimeException("사용자정보가 존재한다.");
    }
    
    log.debug("회원가입 기능 종료");
}




💡 Tip. 코딩 시 아래 5가지 금지

  1. System.out.println()
  1. 선언 후 사용하지 않은 변수
  1. for (int x=0; x < list.size(); x++)
    • 위처럼 사용하지 말고, 아래처럼 사용
      int len = list.size();
      for (int x=0; x < len; x++)
      * 첫번째의 경우 콜렉션의 개수를 계속 사용하기 때문에 성능 저하
  1. "no".equals()를 반대로 사용한 경우
    • 올바른 예 : "N".equals(payment.getPayCompleted())
      잘못된 예 : payment.getPayCompleted().equals(”N”)
      * 문자열이 equals 앞에 위치
  1. import 후 사용 안한 경우
profile
학습용 커스터마이징 간단 개발자 사전

0개의 댓글