我有一个基于servlet的JEE应用程序,我已经部署到OpenShift。我正在使用java.util.logging。
我希望能够在运行时更改日志记录级别。
最初,我以为我可以更改logging.properties文件,更改将反映在日志中。但我在本地机器上尝试过,它没有用。我需要设置一个计划任务,每隔10秒左右读取一次配置。之后,在我的本地计算机上,我可以看到日志记录级别反映了我在运行时的更改。
但是,部署到OpenShift时不起作用。我已经验证计划任务每10秒运行一次,在没有报告IOExceptions的情况下读取配置,但更改的日志记录级别不会反映在日志中。有问题的日志是
两者都记录了相同的信息。
为了混淆问题,logging.properties文件有几个副本。首先,我创建了“Project”logging.properties,并且有“OpenShift”logging.properties。作为测试,我在两个文件中设置了各种日志级别并进行了部署,以验证它是我的“Project”logging.properties文件控制日志输出。
但是,哪个“Project”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
“Project”logging.properties文件有五个副本。
我对它们中的每一个进行了相同的更改,但同时,当计划任务执行LogManager.readConfiguration()时,它们似乎都不是读取的文件。
总而言之,我在Tomcat中运行了一个JEE应用程序。有一个计划任务每10秒执行一次,调用java.util.logging.LogManager.readConfiguration()。我希望如果我更改./WEB-INF/classes/logging.properties文件,不超过11秒,我会看到更改反映在记录到输出日志的内容中。
这在我的本地计算机上按预期工作。它不适用于OpenShift。
有人能告诉我如何在运行时在OpenShift上更改我的java.util.logging级别吗?
提前谢谢。
答案 0 :(得分:1)
自从我写这个问题以来已经过去了23天,而且OpenShift没有丝毫的回应。没有一个提供帮助,而不是说“你不能那样做。”,没有。
所以,我自己发现了问题的答案。
答案:提升,获取亚马逊网络服务。