4.2.2. JBoss Logging을 사용하여 애플리케이션에 로깅 추가

다음 절차에서는 JBoss Logging을 사용하여 애플리케이션에 로깅을 추가하는 방법을 설명합니다.

중요

Maven을 사용하여 프로젝트를 빌드하는 경우 JBoss EAP Maven 리포지토리를 사용하도록 Maven을 구성해야 합니다. 자세한 내용은 Configure the JBoss EAP Maven Repository를 참조하십시오.

  1. JBoss Logging JAR 파일은 애플리케이션의 빌드 경로에 있어야 합니다.

    • Red Hat CodeReady Studio를 사용하여 빌드하는 경우 프로젝트 메뉴에서 Properties 를 선택한 다음 Targeted Runtimes 를 선택하고 JBoss EAP의 런타임이 선택되었는지 확인합니다.

      참고

      Red Hat CodeReady Studio에서 Target 런타임7.4 또는 이후 런타임 버전으로 설정하면 프로젝트가 Jakarta EE 8 사양과 호환됩니다.

    • Maven을 사용하여 프로젝트를 빌드하는 경우 JBoss Logging 프레임워크에 액세스하려면 프로젝트의 pom.xml 파일에 jboss-logging 종속성을 추가해야 합니다.

      <dependency>
      	<groupId>org.jboss.logging</groupId>
      	<artifactId>jboss-logging</artifactId>
      	<version>3.3.0.Final-redhat-1</version>
      	<scope>provided</scope>
      </dependency>

      jboss-eap-jakartaee8 BOM은 jboss-logging 버전을 관리합니다. 자세한 내용은 프로젝트 종속성 관리를 참조하십시오. 애플리케이션에서 로깅 의 작업 예는 JBoss EAP와 함께 제공되는 로깅 빠른 시작을 참조하십시오.

    JBoss EAP가 배포된 애플리케이션에 JAR을 제공하므로 빌드된 애플리케이션에 JAR을 포함할 필요가 없습니다.

  2. 로깅을 추가할 각 클래스에 대해 다음을 수행합니다.

    1. 사용할 JBoss Logging 클래스 네임스페이스에 대한 import 문을 추가합니다. 최소한 다음 가져오기가 필요합니다.

      import org.jboss.logging.Logger;
    2. org.jboss.logging.Logger 인스턴스를 생성하고 정적 메서드 Logger.getLogger(Class) 를 호출하여 초기화합니다. 각 클래스에 대해 단일 인스턴스 변수로 생성하는 것이 좋습니다.

      private static final Logger LOGGER = Logger.getLogger(HelloWorld.class);
  3. 로그 메시지를 보내려는 코드에서 Logger 개체 메서드를 호출합니다.

    Logger 에는 다양한 유형의 메시지에 대해 다양한 매개 변수가 있는 다양한 메서드가 있습니다. 다음 메서드를 사용하여 해당 로그 수준 및 message 매개변수를 문자열로 사용하여 로그 메시지를 전송합니다.

    LOGGER.debug("This is a debugging message.");
    LOGGER.info("This is an informational message.");
    LOGGER.error("Configuration file not found.");
    LOGGER.trace("This is a trace message.");
    LOGGER.fatal("A fatal error occurred.");

    JBoss Logging 방법의 전체 목록은 Logging API 설명서를 참조하십시오.

다음 예제에서는 속성 파일에서 애플리케이션에 대한 사용자 지정 구성을 로드합니다. 지정된 파일을 찾을 수 없는 경우 ERROR 수준 로그 메시지가 기록됩니다.

예제: JBoss Logging으로 애플리케이션 로깅

import org.jboss.logging.Logger;
public class LocalSystemConfig
{
   private static final Logger LOGGER = Logger.getLogger(LocalSystemConfig.class);

   public Properties openCustomProperties(String configname) throws CustomConfigFileNotFoundException
   {
      Properties props = new Properties();
      try
      {
         LOGGER.info("Loading custom configuration from "+configname);
         props.load(new FileInputStream(configname));
      }
      catch(IOException e) //catch exception in case properties file does not exist
      {
         LOGGER.error("Custom configuration file ("+configname+") not found. Using defaults.");
         throw new CustomConfigFileNotFoundException(configname);
      }

      return props;
   }
}