Logger는 log4j의 자체 패키지에서 제공됩니다. Logger.getLogger를 사용하는 경우 log4j jar 패키지가 필요합니다. 이러한 방식으로 log4j에만 의존할 수 있습니다.
LogFactory는 공통 로깅 패키지에서 제공됩니다. LogFactory.getLog를 사용하는 경우 log4j를 공통 로깅 인터페이스를 구현하는 임의의 로거로 대체할 수 있으며 프로그램은 영향을 받지 않습니다. Apache의 공통 로깅 패키지는 범용 로깅 인터페이스입니다. 이 중간 계층을 통해 사용할 로깅 시스템을 지정할 수 있습니다. 시스템 유연성을 높입니다. log4j가 존재하지 않으면 commons-logging은 다른 로그 구현 클래스를 선택합니다. 이렇게 하면 프로그램에서 log4j 로그 파일을 사용할 필요가 없습니다.
유연성이 향상된 이유:
1) 먼저 클래스 경로 아래에서 자신의 구성 파일 commons-logging.properties를 찾으십시오. 발견되면 여기에 정의된 Log 구현 클래스를 사용하십시오.
2) commons-logging.properties 파일을 찾을 수 없는 경우 시스템 환경 변수 org.apache.commons.logging.Log가 정의되었는지 확인하십시오. 발견된 경우 이에 의해 정의된 Log 구현 클래스를 사용하십시오.
3) 그렇지 않으면 클래스 경로에 Log4j 패키지가 있는지 확인하십시오. 발견되면 Log4j가 자동으로 로그 구현 클래스로 사용됩니다.
4) 그렇지 않으면 JDK 자체 로그 구현 클래스를 사용하십시오(로그 구현 클래스는 JDK1.4 이후에만 사용 가능).
5) 그렇지 않으면 commons-logging에서 제공하는 간단한 로그 구현 클래스 SimpleLog를 사용하십시오.
commons-logging 구성을 단순화하기 위해 일반적으로 commons-logging 구성 파일을 사용하지 않으며, commons-logging과 관련된 시스템 환경 변수는 설정하지 않고 대신 Log4j의 Jar 패키지를 classpash에 배치합니다. 이러한 방식으로 commons-logging과 Log4j의 통합이 매우 간단하게 완료됩니다.
다양한 속성에 따라 로그 정보는 일반적으로 낮은 수준에서 높은 수준으로 나누어집니다. "디버그(DEBUG)" "정보(INFO)" "경고(WARN)" "오류(ERROR)" "치명적인 오류(FATAL) ) ".
공통 로깅 작업 모드 기반:
다음과 같이 코드 코드를 복사합니다 .
패키지 조직;
org.apache.commons.logging.Log 가져오기;
org.apache.log4j.Logger 가져오기;
공개 클래스 테스트는 TagSupport를 확장합니다.
공개 정적 로그 로그=LogFactory.getLog(Test.class);
공개 정적 무효 테스트()
{
log.debug("111");
log.info("125");
log.warn("485");
log.error("오류");
}
공개 정적 무효 메인(문자열[] a)
{
테스트.테스트();
}
}
log4j 기반의 연산 방식
다음과 같이 코드 코드를 복사합니다 .
org.apache.log4j.Logger 가져오기;
org.apache.log4j.PropertyConfigurator 가져오기;
공개 클래스 TestLog4j {
정적 로거 logger = Logger.getLogger(TestLog4j.class);
공개 정적 무효 메인(문자열 인수[]) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("여기에 DEBUG가 있습니다.");
logger.info("여기에 몇 가지 정보가 있습니다.");
logger.warn("여기에 경고가 있습니다.");
logger.error("여기에 오류가 있습니다.");
logger.fatal("여기에 치명적인 내용이 있습니다.");
}
}
commons-logging은 Log4j용 패키징 계층만 제공합니다(물론 다른 LOG 구현 포함). 특정 로그 출력은 처리를 위해 여전히 내부적으로 Log4j로 전송되며, log4j는 기본적으로 클래스 디렉터리로 이동하여 log4j.properties를 찾습니다. 파일.