- 로그관리
- Java에서의 로깅 기술
- System.out.println
- 로그 레벨에 따른 필터링 불가하여 성능저하 가능
- 로그 레벨 설정, 파일 출력, 형식 지정 등의 유연성이 부족
- 콘솔에 출력된 메시지는 일시적인것으로 파일시스템에 저장되지 않음
- log4j, logback 등 써드파티 라이브러리 다운로드시 다른 logging서비스 사용 가능
- log4j
- 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