2016-03-05 100 views
2

我要退房GAE管理的虚拟机使用的app.yaml,这里描述https://cloud.google.com/appengine/docs/managed-vms/java/configuring-your-app-with-app-yamlGAE app.yaml:如何设置包含句点的env变量?

当我做

env_variables: 
    java.util.logging.config.file: 'WEB-INF/logging.properties' 

我得到异常

google.appengine.api.yaml_errors.EventError: Value 'java.util.logging.config.file' for key in EnvironmentVariables does not match expression '^(?:[a-zA-Z_][a-zA-Z0-9_]*)$' 

有什么办法来指定自定义logging.properties通过app.yaml?

+1

我还没有找到答案,但gcloud-maven插件源代码非常有用:https://github.com/GoogleCloudPlatform/gcloud-maven-plugin/tree/master/src/main/java/com/google/appengine/gcloudapp 来自gcloud团队的声望! –

回答

1

试试这个:

env_variables: 
    JAVA_USER_OPTS: -Djava.util.logging.config.file=webapps/root/WEB-INF/logging.properties 

app.yamlenv_variables部分是设置环境变量。点名是not allowed,所以这个例外是有道理的。

您正试图设置java.util.logging.config.file,这是一个系统属性,而不是环境变量。要设置它,启动Java时需要提供-Djava.util.logging.config.file=<value>参数。 GAE灵活的图像提供JAVA_USER_OPTS环境变量来定制Java命令行,因此您可以使用它来自定义JUL设置(现在也建议在图像readme中)。

另外,WEB-INF/logging.properties价值没有为我工作,因为目前的目录是$JETTY_BASE,而不是$JETTY_BASE/webapps/root

+0

更正,请注意这个 JETTY_ARGS:-Djava.util.logging.config.file = WEB-INF/logging.properties https://github.com/GoogleCloudPlatform/jetty-runtime#providing-loggingproperties-via-the- web应用程序 –

1

其他答案不再正确。属性名称现名为JAVA_OPTS

全部“秘密”可变这里 https://github.com/GoogleCloudPlatform/jetty-runtime#providing-loggingproperties-via-the-web-application

现在这是正确的设置名称:

env_variables: 
    JAVA_OPTS: -Djava.util.logging.config.file=webapps/root/WEB-INF/logging.properties 
+0

显然这也是不正确的。请参阅https://github.com/GoogleCloudPlatform/jetty-runtime#providing-loggingproperties-via-the-web-application –

1

对于普遍提供灵活的环境,使用这种格式。

env_variables: 
    JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties 

参见here