Log 실무에서 중요하다.
Log 라이브러리를 이용해서 다양한 기능을 활용해보자.
- 로깅 라이브러리 종류
1) java.util.logging
JDK 1.4부터 포함된 표준 로깅 API
별도 라이브러리 추가 불필요
기능이 많이 부족해 다른 로그 라이브러리를 많이 사용
2) Apache Commons logging
아파치 재단의 Commons 라이브러리 중에 로그 출력을 제공하는 라이브러리
3) Log4j
아파치 제단에서 제공하며 가장 많이 사용되는 로깅 라이브러리
4) Logback
Log4j를 개발한 Ceki Gulcu가 Log4j의 단점 개선 및 기능을 추가하여 개발한 로깅 라이브러리.
스프링에서 기본으로 사용. 다른 라이브러리를 사용하고 싶다면 Logback를 없앤 후 사용해야한다.
- System.out.println과의 차이
1. 스레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있다.
2. 로그 레벨 설정을 통해 개발서버에서는 모든 로그를 출력하고,
3. 운영서버에서는 출력하지 않는 등 로그를 상황에 맞게 조절할 수 있다.
4. 콘솔에만 출력하는 것이 아닌 파일이나 네트워크 등, 로그를 별도의 위치에 남길 수 있다.
5. 파일로 남길 때에는 일별, 특정 용량에 따라 로그를 분할하는 것도 가능하다.
로그를 남기는 방법
1.Logger 객체 생성
private final Logger log = LoggerFactory.getLogger(GlobalExceptionAdvise.class); //이 클래스의 로그를 저장하겠다.
로그 파일에 남기기
1. 리소스 파일에 logback.xml 파일 생성
2. Logback Appender 설정 작성(대충 이런 양식임)<configuration scan="true"> <appender name = "console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <Pattern>%d [%-5level] %n</Pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="console"/> </root> </configuration>
- 파일에 저장하는 Appender 추가 공식 홈페이지에 있음.
DB도 Appender만 잘 설정해주면 된다.