• 로그관리
    • Java에서의 로깅 기술
      • System.out.println
        • 로그 레벨에 따른 필터링 불가하여 성능저하 가능
        • 로그 레벨 설정, 파일 출력, 형식 지정 등의 유연성이 부족
        • 콘솔에 출력된 메시지는 일시적인것으로 파일시스템에 저장되지 않음
      • log4j, logback 등 써드파티 라이브러리 다운로드시 다른 logging서비스 사용 가능
    • log4j
      • Apache의 로깅 프레임워크
    • Logback
      • Log4j보다 빠르고, 메모리 효율적
      • SLF4J 인터페이스의 기본 구현체
    • SpringBoot에서의 로깅
      • slf4j
        • 다양한 로깅 프레임워크(Logback, Log4j 등)에 대해 통일된 API를 제공
        • Spring Boot는 기본적으로 SLF4J인터페이스의 Logback을 사용
      • logback
        • Logger logger = LoggerFactory.getLogger(MyClass.class);를 통해 logger생성
          • LoggerFactory는 SLF4J를 사용하여 Logger 인스턴스를 생성
          • Logger 인터페이스는 로깅 메소드를 정의하고, 개발자는 이를 사용하여 로그를 기록
          • Logback은 Logger인스턴스의 로그 메소드 호출을 실제 로그로 변환하는 구현체
        • lombok 라이브러리의 @Slf4j 어노테이션을 사용하면 Logger객체 생성을 생략하고 간편하게 로거사용 가능
      • log레벨 설정시
        • yml에 logging.level.root를 통해 info, debug등 설정
          • trace < debug < info < error 순서로 로그레벨을 가짐
          • 낮은 레벨로 설정할수록 많은 로그가 찍히게 됨에 유의
  • yml을 통한 환경설정
    • yml 파일을 용도에 맞게 분리
      • 기본이 되는 application.yml파일은 필요
      • 그외에 application-{환경명}.yml 으로 추가 생성
        • 또는 yml파일내에서 --- 키워드를 통해 prod, dev 등 환경 구분 가능
    • 일반적으로 prod, staging, dev, local 등으로 환경명으로 분리
      • prod(production, live)
        • 운영서버
      • staging
        • 운영환경과 유사한 개발 서버
      • dev
        • 개발을 위한 개발서버
    • 환경별 yml파일 적용 방법
      • application.yml에 active 옵션을 통해 default환경 지정