• 로그관리
    • 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 순서로 로그레벨을 가짐
          • 낮은 레벨로 설정할수록 많은 로그가 찍히게 됨에 유의
    • 일자별 로그관리
      • log파일 경로 지정
        • application.yml에 file.name 설정
        • 지정된 경로로 파일시스템을 통해 로그파일 생성
        • 로그 파일이 자동으로 롤오버(rollover)
        • 별도로 logback관련 custom 설정을 지정하고자 하면 logback.xml 또는 logback-spring.xml에 적용
      • 일별로 로그 롤오버
        • 롤오버란, 로그 파일이 일정 크기(또는 시간)에 도달했을 때 새로운 로그 파일로 교체되어 저장
      • 별도의 logback.xml을 활용한 error로그, 일반로그 분리
        • resources하위에 logback.xml파일 생성
        • error로그의 경우 별도의 error logger에 이름을 부여하여 생성하여 관리
  • 환경설정(application.yml) 파일분리
    • yml 파일을 용도에 맞게 분리
      • 기본이 되는 application.yml파일은 필요
        • application.yml에 active 옵션을 통해 default환경 지정
      • 그외에 application-{환경명}.yml 으로 환경분리
        • 또는 하나의 yml파일내에서 --- 키워드를 통해 prod, dev 등 환경 구분 가능
    • 일반적으로 prod, staging, dev, local 등으로 환경명으로 분리
      • prod(production, live)
        • 운영서버
      • staging
        • 운영환경과 유사한 개발 서버
      • dev
        • 개발을 위한 개발서버