2

我正在使用 app.yaml 检查 GAE 托管虚拟机,如此处所述https://cloud.google.com/appengine/docs/managed-vms/java/configuring-your-app-with-app-yaml

当我做

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 指定自定义?

4

3 回答 3

1

尝试这个:

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

中的env_variables部分app.yaml用于设置环境变量。名称中不允许使用点,因此例外是有道理的。

您正在尝试设置java.util.logging.config.file,这是系统属性,而不是环境变量。要设置它,您需要-Djava.util.logging.config.file=<value>在启动 Java 时提供参数。GAE Flexible image 提供JAVA_USER_OPTS环境变量来自定义 Java 命令行,因此您可以使用它来自定义 JUL 设置(现在也在图像自述文件中推荐)。

此外,WEB-INF/logging.propertiesvalue 对我不起作用,因为当前目录是$JETTY_BASE,不是$JETTY_BASE/webapps/root

于 2017-05-19T20:18:14.880 回答
1

对于普遍可用的柔性环境,请使用此格式。

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

这里

于 2017-12-10T08:44:37.307 回答
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
于 2017-08-02T15:04:48.420 回答