log4j-구성

이전 장에서는 log4j의 핵심 구성 요소에 대해 설명했습니다. 이 장에서는 구성 파일을 사용하여 핵심 구성 요소를 구성하는 방법에 대해 설명합니다. log4j 구성에는 레벨 할당, Appender 정의 및 구성 파일에서 레이아웃 객체 지정이 포함됩니다.

그만큼 log4j.propertiesfile은 속성을 키-값 쌍으로 유지하는 log4j 구성 파일입니다. 기본적으로 LogManager는 다음과 같은 파일을 찾습니다.log4j.propertiesCLASSPATH.

  • 루트 로거의 수준은 다음과 같이 정의됩니다. 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 형식으로도 로그를 생성 할 수 있습니다.

레이아웃 서식

로그 메시지를 포맷하는 방법은 로그 포맷 장에서 배웁니다 .