java - 为 grails 应用程序指定 java -D 选项

标签 java grails logging

我试图在运行 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/

相关文章:

java - 在两个同步块(synchronized block)和多个 volatile 读/写的情况下重新排序

json - 如何在没有域类的grails中使用elasticSearch索引数据

grails - 为什么在 GSP 中包含 Groovy 代码是个坏主意?

java - Groovy 和 Grails vs Scala,为什么 Twitter 选择 Scala?

database - log4net:如何在数据库中存储数据

java - 部分唤醒锁不适用于 Android Wear

java - 访问未定义的方法

java - 为什么这段代码中只发布了第一个元素?

java - Spring Boot、logback 和 logging.config 属性

Apache 服务器 : Editing httpd. conf 文件(权限被拒绝)