当前位置: 首页 > 知识库问答 >
问题:

JBoss EAP:在不重新启动服务器的情况下重新加载logback配置?

林魁
2023-03-14

我们正在使用JBoss Enterprise Application Platform server(即JBoss EAP 6.1)来开发使用Logback进行日志记录的新web应用程序。我们已经使用JBoss EAP好几个月了,一切都很好。此外,正如您所知,您可以在运行时在JBOSS上部署和取消部署应用程序和配置文件(如mail service.xml),也就是说,无需重新启动服务器。

但是,如果您更改了logback.xml配置文件,尽管在临时目录中部署的JBoss EAP上,JBOSS EAP无法识别更改,并且在重新启动服务器时,JBOSS EAP服务器将删除更改的文件并重新部署完整的新包。这有点烦人-这似乎很奇怪,logaback配置不能热交换,而服务器正在运行。

自动重新加载的安装完成:

--我们已经通过将scan变量设置为true,将scanpiriod设置为5秒来配置了logback。

有没有简单的方法可以解决这个问题,例如,在JBOSS EAP 6.1上“热插拔”logback配置文件?

共有3个答案

颜修真
2023-03-14

查看下面的链接。。我发现这是一个很好的解决方案。

http://blog.patouchas.net/technology/logging-with-logback-and-external-configuration/

刁越
2023-03-14

如果你想在磁盘上更新它,不要对你的logback配置使用部署机制(从那里它会被解包到你的tmp目录),而是将它存储在你的应用程序之外的properties/configuration文件夹中。然后指向它引用磁盘中的文件,而不是类路径。在那之后,Autoscan应该能正常工作。

如果使用部署机制,所有更新也必须经过部署机制。

更新:

如果我在配置文件夹中保留我的应用程序之外的注销配置,在这种情况下,我们必须按计划加载和初始化注销配置,我认为在这种情况下,默认的注销自动扫描程序将无法工作,因为它总是查找注销配置文件在webapp的类路径中。所以在这里我必须写我的自定义自动扫描仪,我不想这样做。你在JBOSS EAP中试过这个吗??

我不明白为什么自动扫描不能处理文件路径。即使是手动输入也提供了回登录配置文件的路径作为启动参数,然后指示如何使用can="true"启用自动扫描,所以它应该可以工作。

实际上,我们有一个使用EAP启动参数配置的项目,尽管它不使用扫描,因为我们不需要它。我们要做的是提供logback文件夹的路径作为启动参数,如果是war、启动bean和JoranConfigurator,则使用logbackconfiglistener。doConfigure()如果是。耳朵

autoscan无法工作且仅支持类路径的一种情况是,在web中使用logbackconfiglistener时。使用xml。这里有一些关于如何避免这种情况的讨论。

郜光明
2023-03-14

您可以将logback.xml放入配置文件夹,然后加载其配置编程。这样,自动重装设置应按预期工作。您可以使用Joran Configurator加载配置。

下面是一个示例代码片段

    LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();

    JoranConfigurator configurator = new JoranConfigurator();
    configurator.setContext(loggerContext);
    loggerContext.reset();
    configurator.doConfigure(LOGBACK_FILE_PATH);
 类似资料:
  • 问题内容: 如何在不重新启动servlet容器的情况下刷新Spring配置文件? 我正在寻找JRebel以外的解决方案。 问题答案: 对于那些最近在这上面绊脚石的人来说,解决此问题的当前和现代方法是使用Spring Boot的Cloud Config。 只需添加注释你刷新豆类和你的主/配置。 因此,例如,以下Controller类: 在Spring Boot Actuator上(通过HTTP端点或

  • 如何在sonarqube中添加注册新规则而不重新启动服务器。我在一个质量配置文件中有50条规则,在分析时使用violation.xml,它包含的新规则没有在声纳数据库中注册,所以在分析时,我需要检查声纳数据库,如果规则不可用,它需要添加到声纳数据库中,分析应该继续。如何在不重新启动服务器的情况下添加规则?请帮忙谢谢。

  • 我正在尝试在运行时重新加载应用程序的配置。配置位于yaml文件中,与ConfigurationProperties的绑定按预期工作。接下来就是。我想在yaml更改后重新加载配置。或者更确切地说,我正在使用预定的检查文件是否已更改。 我希望避免运行第二台服务器来更新我的环境。我有两个问题: 如何更新环境,也许? 我如何传播这些? Spring云配置文档说明: 只要您能够实际更改环境并发布事件,Env

  • 我读了几个类似的问题,这似乎是我能做的最好的。是否可以在dist上启用实时重新加载而无需完全重新启动应用程序? 顺便说一下,我的IDE是IntelliJ。我开始怀疑IntelliJ是否需要排除dist目录。如果是这样的话我会跟进的。

  • 我正在编程服务,从数据库中获取数据,并通过REST服务提供这些数据。它使用spring mvc。我的数据库连接配置在属性文件中,在上下文初始化期间,spring将其作为数据源bean从中加载。 现在我的问题是-我想更改属性文件中的配置(例如更改数据库信息),但我无法重新启动应用程序服务器,因此无法加载新配置。 如何重新初始化Spring上下文或一些特定的bean,以便使用新定义的属性?

  • 我有一个用户名列表,用户名列表根据用户输入的数量而增加。问题是,当用户输入用户名时,列表会被输入填充,只有当我的页面重新加载时,我的页面才会更新。这是我迄今为止尝试过的代码。 我无法在外页重新加载的情况下更新数据。请建议我如何更新ui:在外页重新加载的情况下重复数据。提前谢谢。