【问题标题】:In a JEE / Tomcat application, using java.util.logging, deployed to OpenShift, how can I change the logging level at runtime?在 JEE / Tomcat 应用程序中,使用 java.util.logging 部署到 OpenShift,如何在运行时更改日志记录级别?
【发布时间】:2014-06-11 07:26:41
【问题描述】:

我有一个基于 servlet 的 JEE 应用程序,已部署到 OpenShift。我正在使用 java.util.logging。

我希望能够在运行时更改日志记录级别。

最初,我以为我可以更改 logging.properties 文件,更改将反映在日志中。但是我在本地机器上试过了,它没有用。我需要设置一个计划任务来每隔 10 秒左右读取一次配置。之后,在我的本地机器上,我可以看到日志记录级别反映了我在运行时所做的更改。

但是,这在部署到 OpenShift 时不起作用。我已验证计划任务每​​ 10 秒运行一次,读取配置时未报告 IOExceptions,但更改的日志记录级别未反映在日志中。有问题的日志是

  • ./app-root/logs/jbossews.log
  • ./jbossews/logs/com.haxwell.apps.questions.20YY-MM-DD.log.

两者都记录了相同的信息。

为了混淆问题,logging.properties 文件有几个副本。首先,有我创建的“项目”logging.properties,还有“OpenShift”logging.properties。作为测试,我在两个文件中设置了不同的日志级别,并部署了它们,以验证它是我的“项目”logging.properties 文件控制日志输出。

但是,它是哪个“项目”logging.properties 文件?考虑以下输出:

[ OPENSHIFT_HOME_DIR\ ]\> md5sum 'find . -name logging.properties' | sort ... 926a349aa90021e91868e9b53fcae1da ./jbossews/template/.openshift/config/logging.properties ba14a684dcddbd436b28d405a461fdb0 ./app-deployments/.../src/main/webapp/WEB-INF/classes/logging.properties ba14a684dcddbd436b28d405a461fdb0 ./app-deployments/.../target/quizki/WEB-INF/classes/logging.properties ba14a684dcddbd436b28d405a461fdb0 ./app-root/runtime/repo/src/main/webapp/WEB-INF/classes/logging.properties ba14a684dcddbd436b28d405a461fdb0 ./app-root/runtime/repo/target/quizki/WEB-INF/classes/logging.properties ba14a684dcddbd436b28d405a461fdb0 ./jbossews/work/Catalina/localhost/_/WEB-INF/classes/logging.properties d420b80678109ed2aa9ec47177d28d79 ./app-deployments/.../repo/.openshift/config/logging.properties d420b80678109ed2aa9ec47177d28d79 ./app-root/runtime/repo/.openshift/config/logging.properties d420b80678109ed2aa9ec47177d28d79 ./jbossews/conf/logging.properties

“项目”logging.properties 文件有五个副本。

我同时对它们中的每一个进行了相同的更改,但它们似乎都不是计划任务执行 LogManager.readConfiguration() 时读取的文件。

所以,总而言之,我有一个在 Tomcat 中运行的 JEE 应用程序。有一个计划任务每​​ 10 秒执行一次,调用 java.util.logging.LogManager.readConfiguration()。我希望如果我在不超过 11 秒后更改 ./WEB-INF/classes/logging.properties 文件,我应该会看到该更改反映在输出日志中记录的内容中。

这在我的本地机器上按预期工作。它不适用于 OpenShift。

谁能告诉我如何在 OpenShift 运行时更改我的 java.util.logging 级别?

提前谢谢你。

【问题讨论】:

    标签: tomcat logging openshift


    【解决方案1】:

    我写这个问题已经 23 天了,OpenShift 没有任何回应。没有提供任何帮助,没有一张纸条上写着“你不能那样做。”,什么都没有。

    所以,我自己找到了问题的答案。

    答案:行动起来,使用 Amazon Web Services。

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2019-04-09
      • 2021-01-30
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 2022-10-13
      相关资源
      最近更新 更多