kok202
스프링 부트 강의 정리 (11~12 : Profile, Log)

2019. 4. 21. 02:45[공부] 영상/스프링 부트 강의

profile으로 local 환경 dev 환경 분리하기

https://kok202.tistory.com/114?category=782902

 

스프링 부트 개발환경 로컬환경 분리

application.yml 에 profile을 dev와 local 로 분할 spring: profiles: development ... --- spring: profiles: local ... 로컬환경으로 돌리고 싶을 경우 Run - Edit configurations -> Configuration ->VM optio..

kok202.tistory.com

 

 

 

 

 

@Profile을 이용하면 profile 값에 따라서 주입받을 클래스를 바꿀 수 있다.

public interface Parent {
    public String getMessage();
}
@Component
@Profile("development")
public class ChildDev implements Parent{
    @Override
    public String getMessage(){
        return "development!";
    }
}
@Component
@Profile("local")
public class ChildDev implements Parent{
    @Override
    public String getMessage(){
        return "local!";
    }
}
@Autowired
private Parent child;

 

 

 

 

 

@Slf4j

스프링 부트를 개발할 때는 commons.logging을 사용하여 개발되어 있다. 실제 프로젝트를 개발할 때 로그 관련해서는 @Slf4j 를 쓰자. @Slf4j는 logback을 사용하여 로그를 출력하도록 되어있다. logback은 FATAL 레벨이 없고 ERROR 레벨이 존재한다.

 

 

 

 

 

스프링 부트에서 제공하는 기본 Logging configuration의 properties 파일 설정 (yml 치환은 생략)

spring.output.anis.enable=ALWAYS logging 에 color를 입혀서 출력해준다. (지금은 default가 된 듯하다.) 
logging.file=mylog.txt log 내용을 mylog.txt에 저장해라.
logging.level.root= WARN logging이 WARN인 것만 찍어라.

logback-spring.xml를 이용하여 로깅 관련 설정을 Custom 하게 주거나 로깅해주는 클래스를 바꿀 수도 있다.

ex. 로그 파일을 관리하는 규칙에 맞춰서 저장해야하는 경우 쓸만하다.

ex. spring profile 에따라 로그 설정도 관리해줄수 있다. <springProfile> 태그를 사용하면된다.

ex. spring properties에 있는 값을 가져서 쓸 때는 <springProperties> 태그를 쓰면 된다.