java - JBoss EAP : reload logback config without restarting the server?

标签 java jboss logback

我们正在使用 JBoss 企业应用平台服务器,即。 JBOSS EAP 6.1 用于我们使用 Logback 进行日志记录的新 Web 应用程序。我们已经使用 JBoss EAP 几个月了,一切都很顺利。 此外,您可能知道,您可以在 JBOSS AS 运行期间部署和取消部署应用程序和配置文件(例如 mail-service.xml),即无需重新启动服务器。

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

自动重新加载设置完成:

-- 我们通过将 scan 变量设置为 true 并将 scanPeriod 设置为 5 秒来配置 logback。

Are there easy ways to work around this, i.e. make it possible to 'hot swap' the logback config file on JBOSS EAP 6.1?

最佳答案

您可以将 logback.xml 放在您的配置文件夹中,然后以编程方式加载其配置。通过这种方式,自动重新加载设置应该可以按预期工作。您可以使用 Joran Configurator 加载配置。

这是一个示例代码片段

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

    JoranConfigurator configurator = new JoranConfigurator();
    configurator.setContext(loggerContext);
    loggerContext.reset();
    configurator.doConfigure(LOGBACK_FILE_PATH);

关于java - JBoss EAP : reload logback config without restarting the server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22982090/

相关文章:

jsf - Wildfly 以错误开始。 javax.faces.FacesException : Unable to find CDI BeanManager

java - 使用 Java 接口(interface)时的 Kotlin 接口(interface)实现行为

java - 使用启用缓存的 Apache HttpClient 作为 Jersey 2 客户端

java - 如何处理由容器而不是应用程序发送的 404 错误

linux - 使用 putty 启动 JBOSS

java - Logback:通过 <nestedField> 进行双重嵌套字段

java - 如何在 Spring AMQP 中监听现有队列?

java - 查找 mysql 查询是否执行了更新或插入

java - logback-smtpAppender 有没有办法从应用程序的主题中添加一些信息?

java - 无法发送 JUL -> Logback