log4j-개요

log4j는 Java로 작성된 안정적이고 빠르며 유연한 로깅 프레임 워크 (API)로 Apache Software License에 따라 배포됩니다.

log4j는 C, C ++, C #, Perl, Python, Ruby 및 Eiffel 언어로 포팅되었습니다.

log4j는 런타임에 외부 구성 파일을 통해 고도로 구성 할 수 있습니다. 우선 순위 수준에서 로깅 프로세스를보고 로깅 정보를 데이터베이스, 파일, 콘솔, UNIX Syslog 등과 같은 매우 다양한 대상으로 보내는 메커니즘을 제공합니다.

log4j에는 세 가지 주요 구성 요소가 있습니다.

  • loggers: 로깅 정보 캡처를 담당합니다.

  • appenders: 다양한 선호 대상에 로깅 정보 게시를 담당합니다.

  • layouts: 다양한 스타일의 로깅 정보 형식화를 담당합니다.

log4j의 역사

  • 1996 년 초 EU SEMPER (Secure Electronic Marketplace for Europe) 프로젝트를위한 추적 API로 시작되었습니다.

  • 수많은 개선과 몇 가지 구현 이후, 초기 API는 Java 용으로 널리 사용되는 로깅 패키지 인 log4j로 발전했습니다.

  • 이 패키지는 오픈 소스 이니셔티브에서 인증 한 본격적인 오픈 소스 라이선스 인 Apache Software License에 따라 배포됩니다.

  • 전체 소스 코드, 클래스 파일 및 문서를 포함한 최신 log4j 버전은 다음에서 찾을 수 있습니다. http://logging.apache.org/log4j/.

log4j 기능

  • 스레드로부터 안전합니다.

  • 속도에 최적화되어 있습니다.

  • 명명 된 로거 계층 구조를 기반으로합니다.

  • 로거 당 여러 출력 어 펜더를 지원합니다.

  • 국제화를 지원합니다.

  • 미리 정의 된 기능 세트로 제한되지 않습니다.

  • 로깅 동작은 구성 파일을 사용하여 런타임에 설정할 수 있습니다.

  • 처음부터 Java 예외를 처리하도록 설계되었습니다.

  • ALL, TRACE, DEBUG, INFO, WARN, ERROR 및 FATAL과 같은 여러 수준을 사용합니다.

  • 로그 출력의 형식은 Layout 클래스 를 확장하여 쉽게 변경할 수 있습니다 .

  • 로그 출력의 대상과 쓰기 전략은 Appender 인터페이스의 구현에 의해 변경 될 수 있습니다.

  • 페일 스톱입니다. 그러나 확실히 전달을 보장하기 위해 노력하고 있지만 log4j는 각 로그 문이 대상으로 전달된다는 것을 보장하지 않습니다.

로깅의 장단점

로깅은 소프트웨어 개발의 중요한 구성 요소입니다. 잘 작성된 로깅 코드는 응용 프로그램의 런타임 정보에 대한 빠른 디버깅, 쉬운 유지 관리 및 구조화 된 저장소를 제공합니다.

로깅에는 단점도 있습니다. 응용 프로그램 속도가 느려질 수 있습니다. 너무 장황하면 스크롤링 실명을 유발할 수 있습니다. 이러한 문제를 완화하기 위해 log4j는 안정적이고 빠르며 확장 가능하도록 설계되었습니다.

로깅이 애플리케이션의 주요 초점이되는 경우는 드물기 때문에 log4j API는 이해하고 사용하기 간편하도록 노력합니다.