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 框架:<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 将它们提供给已部署的应用。
对于您要添加日志的每个类:
为您要使用的 JBoss Logging 类命名空间添加导入语句。您至少需要以下导入:
import org.jboss.logging.Logger;
创建
org.jboss.logging.Logger实例,并通过调用静态方法Logger.getLogger(Class)进行初始化。建议将它创建为各个类的一个实例变量。private static final Logger LOGGER = Logger.getLogger(HelloWorld.class);
在您要发送日志消息的代码中调用
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;
}
}