我正在使用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_]*)$'
有没有办法通过app.yaml指定自定义logging.properties
?
试试这个:
env_variables:
JAVA_USER_OPTS: -Djava.util.logging.config.file=webapps/root/WEB-INF/logging.properties
app.yaml
中的env_variables
部分用于设置环境变量。名称中不允许使用点,因此例外是有意义的。
您正在尝试设置 java.util.logging.config.file
,这是一个系统属性,而不是环境变量。要设置它,您需要在启动 Java 时提供-Djava.util.logging.config.file=<value>
参数。GAE 灵活映像提供了JAVA_USER_OPTS
环境变量来自定义 Java 命令行,因此您可以使用它来自定义 JUL 设置(现在映像自述文件中也建议这样做)。
另外,WEB-INF/logging.properties
值对我不起作用,因为当前的目录是$JETTY_BASE
,而不是$JETTY_BASE/webapps/root
。
另一个答案不再正确。属性名称现在命名为 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
对于正式发布的灵活环境,请使用此格式。
env_variables:
JETTY_ARGS: -Djava.util.logging.config.file=WEB-INF/logging.properties
看这里 .