4.3. 배포별 로깅
배포별 로깅을 사용하면 개발자가 사전에 애플리케이션의 로깅 구성을 구성할 수 있습니다. 애플리케이션이 배포되면 정의된 구성에 따라 로깅이 시작됩니다. 이 구성을 통해 생성된 로그 파일에는 애플리케이션의 동작만 포함됩니다.
배포별 로깅 구성이 수행되지 않으면 모든 애플리케이션과 서버에 로깅 하위 시스템의 구성이 사용됩니다.
이 방법에는 시스템 전체 로깅 사용에 대한 장단점이 있습니다. JBoss EAP 인스턴스의 관리자가 서버 로깅보다 다른 로깅을 구성할 필요가 없다는 장점이 있습니다. 단점은 배포별 로깅 구성은 서버 시작 시에만 읽기 때문에 런타임 시 변경할 수 없다는 점입니다.
4.3.1. 애플리케이션에 배포별 로깅 추가
애플리케이션의 배포별 로깅을 구성하려면 배포에 logging.properties 구성 파일을 추가합니다. 이 구성 파일은 JBoss Log Manager가 기본 로그 관리자인 모든 로깅 facade와 함께 사용할 수 있으므로 권장됩니다.
구성 파일이 추가되는 디렉터리는 배포 방법에 따라 다릅니다.
-
EAR 배포를 위해 로깅 구성 파일을
META-INF/디렉터리에 복사합니다. -
WAR 또는 JAR 배포의 경우 로깅 구성 파일을
WEB-INF/classes/디렉터리에 복사합니다.
SLF 4J(Simple Logging Facade for Java) 또는 Apache log4j 를 사용하는 경우 logging.properties 구성 파일이 적합합니다. Apache log4j appenders를 사용하는 경우 구성 파일 log4j.properties 가 필요합니다. 구성 파일 jboss-logging.properties 는 레거시 배포에 대해서만 지원됩니다.
logging.properties 구성
logging.properties 파일은 로깅 하위 시스템이 시작될 때까지 서버가 부팅될 때 사용됩니다. 로깅 하위 시스템이 구성에 포함되지 않은 경우 서버는 이 파일의 구성을 전체 서버의 로깅 구성으로 사용합니다.
JBoss Log Manager 구성 옵션
로거 옵션
-
loggers=<category>[,<category>,…]- 구성할 로거 범주의 쉼표로 구분된 목록을 지정합니다. 여기에 나열되지 않은 모든 카테고리는 다음 속성에서 구성되지 않습니다. -
logger.<category>.level=<level>- 카테고리의 수준을 지정합니다. 수준은 유효한 수준 중 하나일 수 있습니다. 지정되지 않은 경우 가장 가까운 상위 수준은 상속됩니다. -
logger.<category>.handlers=<handler>[,<handler>,…]- 이 로거에 연결할 핸들러 이름의 쉼표로 구분된 목록을 지정합니다. 핸들러는 동일한 속성 파일에 구성해야 합니다. -
logger.<category>.filter=<filter>- 카테고리에 대한 필터를 지정합니다. -
logger.<category>.usePariteHandlers=(true|false)- 로그 메시지가 상위 핸들러에 캐스드되는지 여부를 지정합니다. 기본값은true입니다.
핸들러 옵션
handler.<name>=<className>- 인스턴스화할 핸들러의 클래스 이름을 지정합니다. 이 옵션은 필수입니다.참고표 4.1. 가능한 클래스 이름 :
이름 관련 클래스 콘솔org.jboss.logmanager.handlers.ConsoleHandler파일org.jboss.logmanager.handlers.FileHandler주기org.jboss.logmanager.handlers.PeriodicRotatingFileHandler크기org.jboss.logmanager.handlers.SizeRotatingFileHandler정기적인 크기org.jboss.logmanager.handlers.PeriodicSizeRotatingFileHandlersyslogorg.jboss.logmanager.handlers.SyslogHandlerasyncorg.jboss.logmanager.handlers.AsyncHandler사용자 지정핸들러에는 연결된 클래스 또는 모듈이 있을 수 있습니다. 사용자가 자체 로그 핸들러를 정의하는로깅하위 시스템에서 사용할 수 있습니다.자세한 내용은 JBoss EAP 구성 가이드의 로그 핸들러 를 참조하십시오.
-
handler.<name>.level=<level>- 이 핸들러의 수준을 제한합니다. 지정되지 않은 경우 ALL의 기본값이 유지됩니다. -
handler.<name>.encoding=<encoding>- 이 핸들러 유형에서 지원하는 경우 문자 인코딩을 지정합니다. 지정하지 않으면 핸들러별 기본값이 사용됩니다. -
handler.<name>.errorManager=<name>- 사용할 오류 관리자의 이름을 지정합니다. 오류 관리자는 동일한 속성 파일에서 구성해야 합니다. 지정되지 않은 경우 오류 관리자가 구성되지 않습니다. -
handler.<name>.filter=<name>- 카테고리 필터를 지정합니다. 필터 정의에 대한 자세한 내용은 필터 표현식을 참조하십시오. -
handler.<name>.formatter=<name>- 이 핸들러 유형에서 지원하는 경우 사용할 포맷터의 이름을 지정합니다. 포맷터는 동일한 속성 파일로 구성해야 합니다. 지정하지 않으면 대부분의 핸들러 유형에 대해 메시지가 기록되지 않습니다. handler.<name>.properties=<property>[,<property>,…]- 추가로 구성할 JavaBean 스타일 속성 목록을 지정합니다. 주어진 속성의 적절한 변환을 확인하기 위해 기본 유형 인트로스펙션이 수행됩니다.JBoss Log Manager의 모든 파일 핸들러의 경우
fileName보다 먼저첨부를 설정해야 합니다. 속성이handler.<name>.properties에 표시되는 순서는 속성을 설정할 순서입니다.-
handler.<name>.constructorProperties=<property>[,<property>,…]- 구축 매개변수로 사용해야 하는 속성 목록을 지정합니다. 주어진 속성의 적절한 변환을 확인하기 위해 기본 유형 인트로스펙션이 수행됩니다. -
handler.<name>.<property>=<value>- 명명된 속성의 값을 설정합니다. -
handler.<name>.module=<name>- 핸들러가 상주하는 모듈의 이름을 지정합니다.
자세한 내용은 JBoss EAP 구성 가이드의 Log Handler Attributes 를 참조하십시오.
오류 관리자 옵션
-
errorManager.<name>=<className>- 인스턴스화할 오류 관리자의 클래스 이름을 지정합니다. 이 옵션은 필수입니다. -
errorManager.<name>.properties=<property>[,<property>,…]- 추가로 구성할 JavaBean 스타일 속성 목록을 지정합니다. 주어진 속성의 적절한 변환을 확인하기 위해 기본 유형 인트로스펙션이 수행됩니다. -
errorManager.<name>.<property>=<value>- 명명된 속성의 값을 설정합니다.
포맷터 옵션
-
formatter.<name>=<className>- 인스턴스화할 포맷터의 클래스 이름을 지정합니다. 이 옵션은 필수입니다. -
formatter.<name>.properties=<property>[,<property>,…]- 추가로 구성할 JavaBean 스타일 속성 목록을 지정합니다. 주어진 속성의 적절한 변환을 확인하기 위해 기본 유형 인트로스펙션이 수행됩니다. -
formatter.<name>.constructorProperties=<property>[,<property>,…]- 구축 매개변수로 사용해야 하는 속성 목록을 지정합니다. 주어진 속성의 적절한 변환을 확인하기 위해 기본 유형 인트로스펙션이 수행됩니다. -
formatter.<name>.<property>=<value>- 명명된 속성의 값을 설정합니다.
다음 예는 콘솔에 로깅할 logging.properties 파일의 최소 구성을 보여줍니다.
예제: 최소 logging.properties 구성
# Additional logger names to configure (root logger is always configured)
# loggers=
# Root logger level
logger.level=INFO
# Root logger handlers
logger.handlers=CONSOLE
# Console handler configuration
handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
handler.CONSOLE.properties=autoFlush
handler.CONSOLE.autoFlush=true
handler.CONSOLE.formatter=PATTERN
# Formatter pattern configuration
formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.PATTERN.properties=pattern
formatter.PATTERN.pattern=%K{level}%d{HH:mm:ss,SSS} %-5p %C.%M(%L) [%c] %s%e%n