4.2. 使用 JBoss Logging Framework 进行日志记录
4.2.1. 关于 JBoss Logging 复制链接链接已复制到粘贴板!
JBoss Logging 是包含在 JBoss EAP 中的应用程序日志框架。它提供了一种向应用添加日志的简便方法。您可以向应用添加代码,以使用框架以定义的格式发送日志消息。当应用部署到应用服务器时,服务器可以捕获这些消息,并根据服务器的配置显示或写入到 文件中。
JBoss Logging 提供以下功能:
-
种创新且易于使用的日志记录器。类型日志记录器是一个带有
org.jboss.logging.annotations.MessageLogger注解的日志记录器接口。例如,请参阅 创建国际化的日志记录器、消息和例外。 - 完全支持国际化和本地化.转换器在属性文件中处理消息捆绑包,而开发人员则使用接口和注释。详情请查看 国际化和本地化。
- 构建时间工具,用于生成用于生产类型日志记录器和类型日志器的运行时生成以进行开发的 类型日志记录器。
4.2.2. 使用 JBoss Logging 将日志记录添加到应用程序 复制链接链接已复制到粘贴板!
此流程演示了如何使用 JBoss Logging 向应用添加日志。
如果使用 Maven 构建项目,您必须将 Maven 配置为使用 JBoss EAP Maven 存储库。如需更多信息,请参阅 配置 JBoss EAP Maven 存储库。
JBoss Logging JAR 文件必须位于应用程序的构建路径中。
如果使用红帽代码Ready Studio 构建,请从 Project 菜单中选择 Properties,然后选择 Targeted Runtimes 并确保选中 JBoss EAP 的运行时。
注意如果您在 Red Hat CodeReady Studio 中将 Target runtime 设为 7.4 或更新的运行时版本,则您的项目与 Jakarta EE 8 规范兼容。
如果使用 Maven 构建项目,请确保将
jboss-logging依赖项添加到项目的pom.xml文件中,以访问 JBoss Logging 框架:Copy to Clipboard Copied! Toggle word wrap Toggle overflow jboss-eap-jakartaee8 BOM 管理
jboss-logging的版本。如需了解更多详细信息,请参阅 管理项目依赖项。有关登录应用的工作示例,请参见 JBoss EAP 附带的日志快速入门。
您不需要将 JAR 包含在您的构建的应用中,因为 JBoss EAP 将它们提供给已部署的应用。
对于您要添加日志的每个类:
为您要使用的 JBoss Logging 类命名空间添加导入语句。您至少需要以下导入:
import org.jboss.logging.Logger;
import org.jboss.logging.Logger;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
org.jboss.logging.Logger实例,并通过调用静态方法Logger.getLogger(Class)进行初始化。建议将它创建为各个类的一个实例变量。private static final Logger LOGGER = Logger.getLogger(HelloWorld.class);
private static final Logger LOGGER = Logger.getLogger(HelloWorld.class);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在您要发送日志消息的代码中调用
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.");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.");Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关 JBoss Logging 方法的完整列表,请参阅 Logging API 文档。
以下示例从属性文件加载应用的自定义配置。如果未找到指定的文件,则会记录 aERROR 级别的日志消息。
示例:使用 JBoss Logging 的应用程序日志记录
4.2.3. 将 Apache Log4j2 API 添加到应用程序中 复制链接链接已复制到粘贴板!
您可以使用 Apache Log4j2 API 而不是 Apache Log4j API 将应用程序日志记录消息发送到您的 JBoss LogManager 实施。
JBoss EAP 7.4 发行版本支持 Log4J2 API,但不支持 Apache Log4j2 Core 实现、org.apache.logging.log4j:log4j-core 或其配置文件。
流程
将
org.apache.logging.log4j:log4j-api作为依赖项添加到项目pom.xml文件。将
org.apache.logging.log4j:log4j-api添加到pom.xml文件示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意log4j-apiMaven 依赖项是指 Apache Log4j2 API。log4jMaven 依赖项指的是 Apache Log4j API。记录应用程序消息时,您会将该消息发送到您的 JBoss Log Manager 实施。
-
可选: 要排除
org.apache.logging.log4j.api 模块,必须从jboss-deployment-structure.xml文件中排除该模块,或者将add-logging-api-dependencies属性设置为false。
4.2.4. 创建 Log4j2 LogManager 实现 复制链接链接已复制到粘贴板!
您可以通过在项目的 pom.xml 文件中包含 Log4j2 API,在应用程序中使用 Log4j2 LogManager。另外,您必须在项目的 pom.xml 文件中包括对应的 Log4j2 LogManager 版本。
流程
-
通过排除
jboss-deployment-structure.xml文件中的org.apache.logging.log4j.api模块依赖项来禁用 Log4j日志记录依赖项。 将
log4j-api依赖项和log4j2依赖项添加到项目pom.xml文件。将
log4j-api依赖项和log4j2依赖项添加到pom.xml文件示例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意log4j-apiMaven 依赖项是指 Apache Log4j2 API。log4jMaven 依赖项指的是 Apache Log4j API。记录应用消息时,您会将该消息发送到 Log4j2 LogManager 实施。
可选: 要排除
org.apache.logging.log4j.api 模块,您必须从jboss-deployment-structure.xml文件中排除该模块,或者将add-logging-api-dependencies属性设为false。然后,您必须将log4j2-api和log4j2-core添加到项目pom.xml文件。注意如果对
jboss-deployment-structure.xml文件进行更改,请对部署应用更改。如果您对add-logging-api-dependencies属性进行更改,请对所有已部署的应用程序应用更改。