운영 중인 웹 어플리케이션이 문제가 발생했을 경우, 문제의 원인을 파악하려면 문제가 발생했을 때 당시의 정보가 필요하다.
이런 정보를 얻기 위해서 Exception이 발생했거나, 중요 기능이 실행되는 부분에서는 적절한 로그를 남겨야한다.
로깅이란?
- 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동.
- 프린트 줄 넣기(printlning)는 간단한, 보통은 일시적인, 로그를 생성하기만 한다.
- 시스템 설계자들은 시스템의 복잡성 때문에 로그를 이해하고 사용해야 한다.
- 로그가 제공하는 정보의 양은, 이상적으로는 프로그램이 실행되는 중에도, 설정 가능해야한다.
- 일반적인 로그 기록의 이점
- 로그는 재현하기 힘든 버그에 대한 유용한 정보를 제공할 수 있다.
- 로그는 성능에 관한 통계와 정보를 제공할 수 있다.
- 설정이 가능할 때, 로그는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코드를 수정하여 다시 적용(deploy)하지 않아도, 일반적인 정보를 갈무리할 수 있게 한다.
로그를 출력하는 방법
- System.out.println() 이용
- 로깅 라이브러리 이용
로그 라이브러리 종류
- java.util.logging
- JDK 1.4부터 포함된 표준 로깅 API
- 별도 라이브러리 추가 불필요
- 기능이 많이 부족해 다른 로그 라이브러리를 많이 사용
- Apache Commons logging
- 아파치 재단의 Commons 라이브러리 중에 로그 출력을 제공하는 라이브러리
- Log4j
- 아파치 제단에서 제공하며 가장 많이 사용되는 로깅 라이브러리
- Logback
- Log4j를 개발한 Ceki Gulcu가 Log4j의 단점 개선 및 기능을 추가하여 개발한 로깅 라이브러리
'공부 STUDY > JAVA' 카테고리의 다른 글
[자바/ 자료구조] 컬렉션 프레임워크 공부 전, 자료구조를 간단히 정리해보자! (0) | 2023.01.21 |
---|---|
[JAVA] Optional이란? | Optional 개념 및 사용법 (0) | 2023.01.17 |
[JAVA] 단위 테스트 | JUnit이 무엇일까? (0) | 2023.01.17 |
[JAVA] 람다식(Lambda Expression) (0) | 2023.01.16 |
[JAVA] 쓰레드(Thread)란 무엇일까? | 쓰레드와 메서드, 동기화 (1) | 2023.01.16 |