1. Sout는 로그레벨을 구분할수 없다 무조건 출력된다. 로그를 제대로 구분할수없다, 로그비용폭탄, 그리고 중요도를 구분할수없다
2. Sout는 시간과 스레드풀등을 측정할 수 없다 (물론 가능하지만 로그는 설정없이도 자연스럽게 출력이된다)
3. sout는 콘솔에만 남기지만 로그는 파일에도 저장되고 네트워크로 전송도가능 파일저장에서 일별 용량별 로그 분할도 가능
4. 성능도 sout보다 로그가 좋음 로그는 내부 성능최적화가 되어있음
보통 개발서버는 디버그
운영서버는 인포로한다
기본값은 인포
@Slf4j는
private final Logger log = LoggerFactory.getLogger(getClass());
이 코드를 자동으로 넣어줌
log.trace(" trace log = {}", name);
log.trace(" trace log = " + name);
위 처럼하면 파라미터로 넘기기 때문에 연산이 안 일어남
근데 아래처럼하면안됨
자바는 이 메서드를 호출하기전에 미리 name을 더해버리는 연산이 일어남
trace로그는 출력안되게해도 연산자체는 미리 일어나서 자원 소모