4.5.2. JBoss Logging 工具国际化和本地化

JBoss Logging Tools 是一种 Java API,支持日志消息、异常消息和通用字符串的国际化和本地化。除了提供转换机制外,JBoss 日志工具还为每一日志消息提供唯一标识符支持。

国际化的消息和异常是作为使用 org.jboss.logging.annotations 注解标注的接口内的方法定义创建的。实施接口是不需要的;JBoss 记录工具在编译时可以做到这一点。定义之后,您可以使用这些方法记录消息或获取代码中的异常对象。

通过为每个捆绑包创建属性文件(包含特定语言和区域的翻译),JBoss Logging 工具创建的国际化日志记录和异常接口可以本地化。JBoss Logging Tools 可以为每个捆绑包生成模板属性文件,然后可由转换器编辑。

JBoss Logging Tools 为您项目中的每个相应翻译属性文件创建每个捆绑包的实施。您要做的只是使用捆绑包中定义的方法,JBoss Logging Tools 可确保为您的当前区域设置调用正确的实施。

消息 ID 和项目代码是每个日志消息前面的唯一标识符。可以在文档中使用这些唯一标识符,以方便查找日志消息的相关信息。通过适当的文档,日志消息的含义可以从标识符确定,无论消息所写所用的语言是什么。

JBoss Logging 工具包括对以下功能的支持:

MessageLogger
org.jboss.logging.annotations 软件包中的此接口用于定义国际化的日志消息。消息日志记录器接口标有 @MessageLogger
MessageBundle
此界面可用于定义通用可翻译消息和带有国际化消息的 Exception 对象。消息捆绑包不用于创建日志消息。消息捆绑包接口标有 @MessageBundle
国际化日志消息

这些日志消息通过在 MessageLogger 中定义方法来创建。该方法必须使用 @LogMessage 和 @Message 注释标注,并且必须使用 @Message 的 value 属性指定日志消息。通过在属性文件中提供翻译,国际化日志消息会进行本地化。

JBoss Logging Tools 在编译时为每次编译时生成所需的日志记录类,并在运行时调用当前区域设置的正确方法。

国际化例外
国际化的异常是从 MessageBundle 中定义的方法返回的异常对象。可以为这些消息捆绑包添加注解,以定义默认的异常消息。如果在当前区域设置的匹配属性文件中找到一条消息,则默认消息将被替换为转换。国际化的异常也可以分配有项目代码和消息 ID。
国际化的信息
国际化的消息是从 MessageBundle 中定义的方法返回的字符串。可以给返回 Java String 对象的消息捆绑包方法添加注释,以定义该字符串的默认内容,称为消息。如果在当前区域设置的匹配属性文件中找到一条消息,则默认消息将被替换为转换。
翻译属性文件
转换属性文件是 Java 属性文件,包含来自一个区域设置、国家/地区和变体的一个接口的消息转换。JBoss 日志工具使用转换属性文件来生成返回消息的类。
JBoss Logging Tools 项目代码

项目代码是标识消息组的字符字符串。它们显示在每个日志消息的开头,并在消息 ID 的前面显示。项目代码通过 @MessageLogger 注释的 projectCode 属性来定义。

注意

有关新日志消息项目代码前缀的完整列表,请参见 JBoss EAP 7.3 中使用的项目代码

JBoss Logging 工具消息 ID
消息 ID 是结合项目代码时唯一标识日志消息的数字。消息 ID 显示在每条日志消息的开头,并附加到消息的项目代码中。消息 ID 通过 @Message 注释的 ID 属性来定义。

JBoss EAP 附带的 logging-tools 快速入门是一个简单的 Maven 项目,提供 JBoss Logging 工具的许多功能的有效示例。以下代码示例取自 logging-tools quickstart。