我试图在运行 Grails 应用程序时指定 java.util.logging.config.file,但它似乎不起作用。 这是我正在尝试的:
export GRAILS_OPTS="-Djava.util.logging.config.file=logging.properties"
export JAVA_OPTS="-Djava.util.logging.config.file=logging.properties"
grails -Djava.util.logging.config.file=logging.properties run-job myJob
一开始我看到了详细的消息,但是一旦 grails fork 作业处理器,命令行和 env 选项都会丢失。
最佳答案
Grails 在幕后使用 Gradle。默认情况下,Gradle 正在调用单独的 VM 来运行或测试应用程序,并且该 VM 没有设置这些属性。您可以做的是,修改 build.gradle
文件,将系统属性从 Gradle VM 传递到 fork VM。像这样的东西对我们有用:
bootRun {
systemProperty 'server.port', System.getProperty('server.port')
}
还可以使用System.getProperties()
传递所有属性。如果你使用谷歌的话,有很多这方面的例子。检查类似:https://discuss.gradle.org/t/how-should-i-be-handling-passing-system-properties-from-gradle-to-my-tests/7171
此外,您正在使用 logging.properties
文件的相对路径,在某些情况下,当前路径可能不同,使用绝对路径可能更适合验证。
关于java - 为 grails 应用程序指定 java -D 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910828/