4.5.5.4. 指定一个例外作为日志消息的 Causeion


JBoss Logging Tools 允许将自定义日志记录方法的一个参数定义为消息的原因。此参数必须是 可浏览 类型或其任何子类,并且标上 @Cause 注释。此参数无法像其他参数一样在日志消息中引用,并在日志消息后显示。

以下步骤演示了如何使用 @Cause 参数 更新日志记录方法以指示"阻碍"异常:假设您已创建了您要向其添加此功能的国际化日志消息。

指定一个例外作为日志消息的 Causeion

  1. 向方法添加类型为 浏览或其子类的参数。

    @LogMessage
    @Message(id=404, value="Loading configuration failed. Config file:%s")
    void loadConfigFailed(Exception ex, File file);
    Copy to Clipboard Toggle word wrap
  2. 添加 @Cause 注释到 参数。

    import org.jboss.logging.annotations.Cause
    
    @LogMessage
    @Message(value = "Loading configuration failed. Config file: %s")
    void loadConfigFailed(@Cause Exception ex, File file);
    Copy to Clipboard Toggle word wrap
  3. 调用 方法。在您的代码中调用该方法时,必须传递一个正确类型的对象,并在日志消息后显示该方法。

    try
    {
       confFile=new File(filename);
       props.load(new FileInputStream(confFile));
    }
    catch(Exception ex) //in case properties file cannot be read
    {
         ConfigLogger.LOGGER.loadConfigFailed(ex, filename);
    }
    Copy to Clipboard Toggle word wrap

如果代码引发 FileNotFoundException 类型异常,则以上代码示例的输出如下:

10:50:14,675 INFO [com.company.app.Main] (MSC service thread 1-3) Loading configuration failed. Config file: customised.properties
java.io.FileNotFoundException: customised.properties (No such file or directory)
   at java.io.FileInputStream.open(Native Method)
   at java.io.FileInputStream.<init>(FileInputStream.java:120)
   at com.company.app.demo.Main.openCustomProperties(Main.java:70)
   at com.company.app.Main.go(Main.java:53)
   at com.company.app.Main.main(Main.java:43)
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat