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。