2016-03-05 102 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