4.2.2. 使用 JBoss Logging 将日志记录添加到应用程序

此流程演示了如何使用 JBoss Logging 向应用添加日志。

重要

如果使用 Maven 构建项目,您必须将 Maven 配置为使用 JBoss EAP Maven 存储库。如需更多信息,请参阅配置 JBoss EAP Maven 存储库

  1. JBoss Logging JAR 文件必须位于应用程序的构建路径中。

    • 如果使用红帽代码Ready Studio 构建,请从 Project 菜单中选择 Properties,然后选择 Targeted Runtimes 并确保选中 JBoss EAP 的运行时。
    • 如果使用 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 附带 的日志 快速入门。

    您不需要将 JAR 包含在您的构建的应用中,因为 JBoss EAP 将它们提供给已部署的应用。

  2. 对于您要添加日志的每个类:

    1. 为您要使用的 JBoss Logging 类命名空间添加导入语句。您至少需要以下导入:

      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.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 文档。

以下示例从属性文件加载应用的自定义配置。如果未找到指定的文件,则会记录 aERROR 级别的日志消息。

示例:使用 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;
   }
}