log4j-구성
이전 장에서는 log4j의 핵심 구성 요소에 대해 설명했습니다. 이 장에서는 구성 파일을 사용하여 핵심 구성 요소를 구성하는 방법에 대해 설명합니다. log4j 구성에는 레벨 할당, Appender 정의 및 구성 파일에서 레이아웃 객체 지정이 포함됩니다.
그만큼 log4j.propertiesfile은 속성을 키-값 쌍으로 유지하는 log4j 구성 파일입니다. 기본적으로 LogManager는 다음과 같은 파일을 찾습니다.log4j.properties 에 CLASSPATH.
루트 로거의 수준은 다음과 같이 정의됩니다. DEBUG. 그만큼DEBUG X라는 어 펜더를 첨부합니다.
X라는 어 펜더를 유효한 어 펜더로 설정하십시오.
어 펜더 X의 레이아웃을 설정합니다.
log4j.properties 구문 :
다음은 어 펜더 X에 대한 log4j.properties 파일 의 구문입니다 .
# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n
log4j.properties 예제
위의 구문을 사용하여 다음을 정의합니다. log4j.properties 파일:
루트 로거의 수준은 다음과 같이 정의됩니다. DEBUG, DEBUG 어 펜더 이름 FILE 그것에.
어 펜더 FILE 다음과 같이 정의됩니다. org.apache.log4j.FileAppender. 다음과 같은 파일에 기록합니다.log.out 에 위치한 log 예배 규칙서.
정의 된 레이아웃 패턴은 % m % n 이며, 이는 인쇄 된 로깅 메시지 뒤에 개행 문자가 옴을 의미합니다.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
log4j는 $ {variableName}과 같은 UNIX 스타일 변수 대체를 지원한다는 점에 유의해야합니다.
디버그 수준
우리는 두 어 펜더와 함께 DEBUG를 사용했습니다. 가능한 모든 옵션은 다음과 같습니다.
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- ALL
이러한 수준은이 자습서의 뒷부분에서 설명합니다.
어 펜더
Apache log4j는 주로 콘솔, 파일, 소켓, NT 이벤트 로그 등과 같은 다른 대상에 로깅 메시지를 인쇄하는 Appender 개체를 제공합니다.
각 Appender 개체에는 연결된 다른 속성이 있으며 이러한 속성은 해당 개체의 동작을 나타냅니다.
특성 | 기술 |
---|---|
형세 | Appender는 레이아웃 개체 및 이와 관련된 변환 패턴을 사용하여 로깅 정보의 형식을 지정합니다. |
표적 | 대상은 어 펜더에 따라 콘솔, 파일 또는 다른 항목이 될 수 있습니다. |
수평 | 수준은 로그 메시지의 필터링을 제어하는 데 필요합니다. |
문지방 | Appender는 로거 수준과 관계없이 관련된 임계 값 수준을 가질 수 있습니다. Appender는 임계 값 수준보다 낮은 수준의 모든 로깅 메시지를 무시합니다. |
필터 | Filter 개체는 수준 일치를 넘어서 로깅 정보를 분석하고 로깅 요청을 특정 Appender가 처리해야하는지 아니면 무시해야하는지 여부를 결정할 수 있습니다. |
다음 방법을 사용하여 구성 파일에 다음 설정을 포함하여 Appender 개체를 Logger에 추가 할 수 있습니다.
log4j.logger.[logger-name]=level, appender1,appender..n
다음과 같이 XML 형식으로 동일한 구성을 작성할 수 있습니다.
<logger name="com.apress.logging.log4j" additivity="false">
<appender-ref ref="appender1"/>
<appender-ref ref="appender2"/>
</logger>
프로그램 내부에 Appender 객체를 추가하려면 다음 방법을 사용할 수 있습니다.
public void addAppender(Appender appender);
addAppender () 메서드는 Logger 객체에 Appender를 추가합니다. 예제 구성에서 알 수 있듯이 쉼표로 구분 된 목록의 로거에 여러 Appender 개체를 추가 할 수 있으며, 각각은 별도의 대상에 로깅 정보를 인쇄합니다.
위의 예제 에서는 하나의 어 펜더 FileAppender 만 사용했습니다 . 가능한 모든 어 펜더 옵션은 다음과 같습니다.
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender
- DailyRollingFileAppender
- ExternallyRolledFileAppender
- FileAppender
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender
- SMTPAppender
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppender
파일 로깅에서 FileAppender를 다루고 데이터베이스 에서 로깅에서 JDBC Appender를 다룹니다 .
형세
어 펜더와 함께 PatternLayout을 사용했습니다. 가능한 모든 옵션은 다음과 같습니다.
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
HTMLLayout 및 XMLLayout을 사용하여 HTML 및 XML 형식으로도 로그를 생성 할 수 있습니다.
레이아웃 서식
로그 메시지를 포맷하는 방법은 로그 포맷 장에서 배웁니다 .