4.5.3. 创建国际化的日志记录器、消息和例外

4.5.3.1. 创建国际化的日志消息

您可以通过创建 MessageLogger 接口,使用 JBoss Logging Tools 创建国际化日志消息。

注意

本节不涵盖所有可选功能或日志消息的本地化。

  1. 如果您还没有这样做,请将您的 Maven 设置配置为使用 JBoss EAP Maven 存储库。

    如需更多信息,请参阅使用 Maven 设置配置 JBoss EAP Maven 存储库

  2. 配置项目的 pom.xml 文件,以使用 JBoss Logging 工具。

    详情请查看 JBoss Logging Tools Maven 配置

  3. 通过添加 Java 接口到项目来创建消息日志记录器接口,以包含日志消息定义。

    指出用于描述它将定义的日志消息的接口。日志消息接口有以下要求:

    • 它必须标有 @org.jboss.logging.annotations.MessageLogger
    • 另外,还可扩展 org.jboss.logging.BasicLogger
    • 接口必须定义一个字段,该字段是与接口相同的类型的消息日志记录器。使用 @org.jboss.logging. Logger 的 getMessageLogger () 方法执行此操作。

      示例:创建消息日志器

      package com.company.accounts.loggers;
      
      import org.jboss.logging.BasicLogger;
      import org.jboss.logging.Logger;
      import org.jboss.logging.annotations.MessageLogger;
      
      @MessageLogger(projectCode="")
      interface AccountsLogger extends BasicLogger {
         AccountsLogger LOGGER = Logger.getMessageLogger(
               AccountsLogger.class,
               AccountsLogger.class.getPackage().getName() );
      }

  4. 向接口添加一个方法定义,以用于每一日志消息。

    请以描述性方式命名每个方法,使其表示的日志消息。每个方法都有以下要求:

    • 该方法必须返回 void
    • 它必须标有 @org.jboss.logging.annotation.LogMessage 注释。
    • 它必须标有 @org.jboss.logging.annotations.Message 注释。
    • 默认日志级别为 INFO
    • @org.jboss.logging.annotations.Message 的 value 属性包含默认日志消息,如果没有可用的翻译则使用此消息。

      @LogMessage
      @Message(value = "Customer query failed, Database not available.")
      void customerQueryFailDBClosed();
  5. 在您的代码中添加调用,以从其中记录消息来调用,从而调用方法。

    无需创建接口实施,注释处理器会在编译项目时为您执行此操作。

    AccountsLogger.LOGGER.customerQueryFailDBClosed();

    自定义日志记录器从 BasicLogger 子级,因此也可以使用 BasicLogger 的日志记录方法。不需要创建其他日志记录器来记录非国际化的消息。

    AccountsLogger.LOGGER.error("Invalid query syntax.");
  6. 该项目现在支持一个或多个可本地化的国际化日志记录器。
注意

JBoss EAP 附带的 logging-tools 快速入门是一个简单的 Maven 项目,它提供了一个如何使用 JBoss Logging Tools 的工作示例。