로그(log)란?
정의
모든 행위와 이벤트 정보를 시간의 경과에 따라 기록한 데이터
시스템 상에서 "로그"를 생성하는 과정을 "로깅(logging)" 이라고 한다.
장점
1. 개발 프로그램의 디버깅
2. 예기치 못한 문제의 원인 파악
3. 시스템 및 사용자의 동작 패턴 분석
4. 해킹(침입)의 비정상 동작의 기록을 감지
5. 분석을 통한 통계화
요약
즉, 모든 것을 기록하고 분석하여 예측하게 해주는 장치라고 할 수 있음
로깅(logging) 라이브러리
java.util.loggong(jdk8)
JDK에 내장된 기본 로깅 라이브러리, JDK 1.4부터 포함된 표준 로깅 API
Apache Commons logging
Apache 재단의 Commons 라이브러리 중에 로그 출력을 제공하는 라이브러리
log4j
Apache 재단에서 만든 log4j는 2001년에 처음 릴리즈된 자바의 로깅 라이브러리이다. 가장 널리 사용되는 로깅 라이브러리
Logback
log4j를 개발한 Ceki Gulcu가 Log4j의 단점 개선 및 기능을 추가하여 개발한 로깅라이브러리
로그 구조
로그 구조
log4j 계층구조로 되어있으며 코어층(Core Layer)과 서포트층(Support Layer)이 있다. 코어층이 서포트층을 유기적으로 응용하여 코어층에서 메세지를 핸들링한다.

로그 레벨

Appender
패키지 : org.apache.log4j

Layout
어떤 형식으로 출력할지 정하는 클래스

Layout 옵션

로그 설정
설정 파일은 "log4j.properties" 이다. LogManager는 CLASSPATH 또는 프로젝트 root 디렉토리에 지정해야 "log4j.properties"를 읽을 수 있다.
Level, Appender, Layout 등을 설정한다.

Referense
https://kurukurucoding.tistory.com/49