15.1 JBoss Logging 이해
로깅은 애플리케이션의 활동을 일련의 메시지로 기록하는 것이다.
로그 메시지는 애플리케이션을 개발하면서 디버깅하는 개발자나 운영 환경에서 시스템을 관리하는 관리자에게 매우 중요한 정보를 제공한다.
최근의 Java 로깅 프레임워크들은 대부분 정확한 시간과 메시지의 출처 등 다른 정보도 함께 제공하고 있다.
JBoss EAP 6는 EAP 자체의 정보를 출력하거나 배포된 애플리케이션에서 사용하기 위해 다양한 설정이 가능한 로깅 시스템을 제공한다. JBoss EAP 6의 로깅 시스템은 JBoss LogManager를 기반으로 하고 log4j, Java Utils 로깅(java.util.logging) 및 JBoss Logging을 포함한 다양한 로깅 프레임워크를 지원한다.
또, JBoss EAP 6에 배포되는 애플리케이션에서 로깅 기능을 사용할 수 있도록 강력하고 편리한 로깅 프레임워크인 JBoss Logging을 제공한다.
JBoss LogManager 는 다음과 같은 로깅 프레임워크를 지원한다.
- JBoss Logging - JBoss EAP 6에 포 함되어 있다.
- Apache Commons Logging - http://commons.apache.org/logging/
- Simple Logging Facade for Java (SLF4J) - http://www.slf4j.org/
- Apache log4j - http://logging.apache.org/log4j/1.2/
- Java SE Logging (java.util.logging) -http://download.oracle.com/javase/6/docs/api/java/util/logging/package-summary.html
부트 로거 설정
부트 로그는 JBoss EAP 6 서버 부팅 중 발생한 이벤트를 기록한다. JBoss에서 제공하는 로깅 서브시스템도 extension으로 제공되는 모듈이기 때문에 로깅 서브시스템이 활성화되기 전까지 발생하는 이벤트를 기록할 로거가 필요하다. 부트 로거가 그 역할을 한다.
로그 출력 레벨 및 로그 로테이션 등이 이미 설정되어 있어 기본값에서 변경하지 않아도 된다.
| 구분 | 기본값 | 비고 |
|---|---|---|
| 로그파일 저장 위치 | $jboss.server.base.dir/log | |
| 로그파일 이름 | boot.log | 콘솔 및 파일에 출력 |
부트 로그는 logging.properties 파일을 편집하여 설정할 수 있다. 이 파일은 Java의 표준 프로퍼티 파일이며 텍스트 편 집기로 편집하면 된다.
| 구분 | 로깅 프로퍼티 파일 경로 |
|---|---|
| 도메인 모드 | $JBOSS_HOME/domain/configuration/logging.properties |
| 스탠드얼론 모드 | $JBOSS_HOME/standalone/configuration/logging.properties |
다음은 JBoss의 설정 파일 정보를 DEBUG 레벨로 출력하도록 logging.properties 설정 파일을 변경한 예제이다.
# Additional loggers to configure (the root logger is always configured)
loggers=org.jboss.as.config
# Root logger level
logger.level=$\{jboss.boot.server.log.level:INFO}
# Root logger handlers
logger.handlers=BOOT_FILE,CONSOLE
logger.org.jboss.as.config.level=DEBUG
logger.org.jboss.as.config.useParentHandlers=true
# Console handler configuration
handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
handler.CONSOLE.properties=autoFlush
handler.CONSOLE.level=$\{jboss.boot.server.log.console.level:INFO}
handler.CONSOLE.autoFlush=true
handler.CONSOLE.formatter=PATTERN
# File handler configuration
handler.BOOT_FILE=org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
handler.BOOT_FILE.level=DEBUG
handler.BOOT_FILE.properties=autoFlush,fileName
handler.BOOT_FILE.autoFlush=true
handler.BOOT_FILE.fileName=$\{org.jboss.boot.log.file:boot.log}
handler.BOOT_FILE.formatter=PATTERN
# Formatter pattern configuration
formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.PATTERN.properties=pattern
formatter.PATTERN.pattern=%d\{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n