log4J 관련 질문드립니다
- 작성자 :
- 김*희
- 작성일 :
- 2009-09-18 14:42:18
- 조회수 :
- 4,510
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
여기에 드려도 될 질문인지는 모르겠지만
웹 검색으로 알 수가 없어서 이렇게 질문드립니다.
1. 일반적인 log4j 사용 예를 보면 org.apache.log4j 에 있는 컴포넌트들을 사용하고 있는데요.
egov에서 제공하는 예제 등을 보면 org.apache.commons에 있는 Log나 LogFactory를 사용하고 있습니다. LogFactory의 경우는 위 컴포넌트에는 제공을 안해주는걸로 알고 있지만 나머지 기능들은 유사한게 많은거 같더라구요.
두 컴포넌트가 어떻게 차이가 나는지 ( 예. 전자가 개발되고 후자가 다음으로 개발되었다. 제공하려는 기능은 같다. 등과 같은.. ) 좀 알수 있을까요?
2. 1번질문에서 전자의 경우는 log4j.properties에 설정을 하는걸로 보았는데요. (물론 xml파일로도 설정할 수 있다는걸 얼핏 본거 같습니다만 자세히 알순 없더군요) 후자의 경우는 log4j.xml 파일로 설정하는걸로 알고 있습니다. 이 log4j.xml파일의 경로를 지정해준다던가 파일명을 설정해주는 것은 어디서 이루어지나요? 아무리 찾아도 없는데 무조건 이 이름의 파일만을 찾는건가요? 그리고 그렇다면 어떤 폴더에 이 파일을 넣어주는 것이 일반적인가요?(제 맘대로 넣어도 찾아서 로딩하는 것 같긴 했지만 의도한 위치를 알고 싶습니다)
그럼 좋은 하루 되십시요
웹 검색으로 알 수가 없어서 이렇게 질문드립니다.
1. 일반적인 log4j 사용 예를 보면 org.apache.log4j 에 있는 컴포넌트들을 사용하고 있는데요.
egov에서 제공하는 예제 등을 보면 org.apache.commons에 있는 Log나 LogFactory를 사용하고 있습니다. LogFactory의 경우는 위 컴포넌트에는 제공을 안해주는걸로 알고 있지만 나머지 기능들은 유사한게 많은거 같더라구요.
두 컴포넌트가 어떻게 차이가 나는지 ( 예. 전자가 개발되고 후자가 다음으로 개발되었다. 제공하려는 기능은 같다. 등과 같은.. ) 좀 알수 있을까요?
2. 1번질문에서 전자의 경우는 log4j.properties에 설정을 하는걸로 보았는데요. (물론 xml파일로도 설정할 수 있다는걸 얼핏 본거 같습니다만 자세히 알순 없더군요) 후자의 경우는 log4j.xml 파일로 설정하는걸로 알고 있습니다. 이 log4j.xml파일의 경로를 지정해준다던가 파일명을 설정해주는 것은 어디서 이루어지나요? 아무리 찾아도 없는데 무조건 이 이름의 파일만을 찾는건가요? 그리고 그렇다면 어떤 폴더에 이 파일을 넣어주는 것이 일반적인가요?(제 맘대로 넣어도 찾아서 로딩하는 것 같긴 했지만 의도한 위치를 알고 싶습니다)
그럼 좋은 하루 되십시요
A
전자정부 사업단입니다`
Jakarta Commons Logging(JCL)은 많은 로깅 툴킷에 독립적인 경량의 로그 인터페이스입니다.
JCL은 미들웨어 및 툴 개발자에게 단순한 로깅 추상화 계층을 제공하기 때문에 사용자(애플리케이션 개발자)는
특정 로깅 구현체를 플러그인하여 사용할 수 있게 됩니다.
JCL은 Log4j, Avalon LogKit, JDK1.4를 포함한 다른 로깅 툴에 대한 경량의 래퍼(wrapper) 구현체에 대한 로그 인터페이스를 제공합니다
- 설정
JCL에는 다음과 같은 기본이 되는 두 가지 추상 클래스가 있다.
Log: 기본 Logger 인터페이스
LogFactory: Log 객체를 생성하는 방법을 알고 있는 추상 클래스
더 자세히 살펴본다면, JCL은 아래와 같이 구성되어 있다.
- org.apache.commons.logging
Log: 다양한 로깅 API를 추상화시키는 단순한 로깅 인터페이스
LogFactory: Java API 중에서 JAXP와 유사하게 configuration과 관련 클래스를 찾는 과정을 거쳐서 Log의 인스턴스를 생성하는 추상 클래스
LogSource: Log 인스턴스를 생성하는 팩토리 객체
LogConfigurationException
- org.apache.commons.logging.impl
Jdk14Logger: org.apache.commons.logging.Log 인터페이스의 구현체. JDK1.4에 소개된 표준 JDK 로깅 매커니즘을 래핑했다
Log4JCategoryLog
Log4jFactory
Log4JLogger: Log4J에 직접 매핑(mapping)된 Log 인터페이스의 구현체
LogFactoryImpl
LogKitLogger: avalon-logkit를 랩핑한 Log 인터페이스의 구현체
NoOpLog
SimpleLog
2번 답변은 Class path 로 걸어주시면 됩니다.
log4j.properties
log4j.xml 둘다 사용가능합니다.
이중 둘중 하나만 사용하가능 합니다. 사용하실경우 둘중 하나를 Class path를 걸어사 사용하시면 됩니다.
전자정부 프레임워크의 경우 src/main/resource 및에 둘중 하나를 넣어주시면 됩니다. 관리 측면에서는 log4j.xml를 사용하시며 더욱 편리하게 관리하실수 있으실 겁니다.
Jakarta Commons Logging(JCL)은 많은 로깅 툴킷에 독립적인 경량의 로그 인터페이스입니다.
JCL은 미들웨어 및 툴 개발자에게 단순한 로깅 추상화 계층을 제공하기 때문에 사용자(애플리케이션 개발자)는
특정 로깅 구현체를 플러그인하여 사용할 수 있게 됩니다.
JCL은 Log4j, Avalon LogKit, JDK1.4를 포함한 다른 로깅 툴에 대한 경량의 래퍼(wrapper) 구현체에 대한 로그 인터페이스를 제공합니다
- 설정
JCL에는 다음과 같은 기본이 되는 두 가지 추상 클래스가 있다.
Log: 기본 Logger 인터페이스
LogFactory: Log 객체를 생성하는 방법을 알고 있는 추상 클래스
더 자세히 살펴본다면, JCL은 아래와 같이 구성되어 있다.
- org.apache.commons.logging
Log: 다양한 로깅 API를 추상화시키는 단순한 로깅 인터페이스
LogFactory: Java API 중에서 JAXP와 유사하게 configuration과 관련 클래스를 찾는 과정을 거쳐서 Log의 인스턴스를 생성하는 추상 클래스
LogSource: Log 인스턴스를 생성하는 팩토리 객체
LogConfigurationException
- org.apache.commons.logging.impl
Jdk14Logger: org.apache.commons.logging.Log 인터페이스의 구현체. JDK1.4에 소개된 표준 JDK 로깅 매커니즘을 래핑했다
Log4JCategoryLog
Log4jFactory
Log4JLogger: Log4J에 직접 매핑(mapping)된 Log 인터페이스의 구현체
LogFactoryImpl
LogKitLogger: avalon-logkit를 랩핑한 Log 인터페이스의 구현체
NoOpLog
SimpleLog
2번 답변은 Class path 로 걸어주시면 됩니다.
log4j.properties
log4j.xml 둘다 사용가능합니다.
이중 둘중 하나만 사용하가능 합니다. 사용하실경우 둘중 하나를 Class path를 걸어사 사용하시면 됩니다.
전자정부 프레임워크의 경우 src/main/resource 및에 둘중 하나를 넣어주시면 됩니다. 관리 측면에서는 log4j.xml를 사용하시며 더욱 편리하게 관리하실수 있으실 겁니다.