오늘은 Log를 왜 사용해야하는지 간단하게 정리해두려합니다.
개발을 하다보면 익숙했던 System.out.print 를 사용하는 것보다 log를 사용하는 것을 추천한다고 하는데 이 이유를 정확히 파악하지 못했습니다.
Logging을 System.out으로 하면 안 되는 이유를 정리하면 다음과 같습니다.
- 에러/장애 발생 시 추적할 수 있는 최소한의 정보가 없다.
- 최소한의 정보는 고사하고, 로그 내용을 가져오기 어렵습니다.
- 누가 봐도 System.out.println은 콘솔에 로그를 출력하는 API입니다.
오해의 소지가 있을 것 같아 위 3가지를 조금만 더 얘기하겠습니다.
- 첫 번째, 최소한의 정보가 없지만 만들어 줄 수는 있습니다. 물론 수동으로.
- 두 번째, 로그 내용을 어떻게 가져오거나 서버로 전송할까? 이미 콘솔에 뿌려진걸..
- 세 번째, 애초에 콘솔 말고 파일로 출력하게 할 수도 있다. 하지만 누가 상상이나 할까..
단순히 로깅을 떠나서 프로그램은 혼자 만들고 땡이 아니므로, 협업하는 개발자/운영자를 위해서 System.out은 지양하고 로깅 라이브러리를 사용해야 할 필요가 있겠습니다.