首页 > 解决方案 > 适用于 GAE Java 11 标准运行时的 Google Cloud Logging - 日志不相关

问题描述

我正准备从 GAE Java 8 标准运行时迁移到 Java 11 标准运行时。我一直在使用java.util.logging. 我了解使用 Java 11 运行时,日志不再自动关联。使用 Java 8 运行时,特定请求的所有日志消息都将嵌套在特定请求的日志条目中。但是现在,所有日志消息都是独立出现的。

为了解决这个问题,我按照文档使用了 Google Cloud Logging。但是,无论是否使用 Google Cloud Logging,我的日志都没有任何区别。日志仍然不相关。

我的测试应用程序是使用HelloWorld 示例开发的单个 servlet 应用程序。

我已将此依赖项添加到我的pom.xml

<dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-logging</artifactId>
    <version>1.101.2</version>
</dependency>

我的logging.properties文件类似于文档中的示例,位于src/main/resources/文件夹中。

.level = INFO

# it is recommended that io.grpc and sun.net logging level is kept at INFO level,
# as both these packages are used by Stackdriver internals and can result in verbose / initialization problems.
io.grpc.netty.level=INFO
sun.net.level=INFO

com.mycompany.services.main.MyClass.handlers=com.google.cloud.logging.LoggingHandler
# default : java.log
com.google.cloud.logging.LoggingHandler.log=custom_log

# default : INFO
com.google.cloud.logging.LoggingHandler.level=FINE

# default : ERROR
com.google.cloud.logging.LoggingHandler.flushLevel=ERROR

# default : auto-detected, fallback "global"
com.google.cloud.logging.LoggingHandler.resourceType=container

# custom formatter
com.google.cloud.logging.LoggingHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=%3$s: %5$s%6$s

这是用于部署的命令:

mvn clean package appengine:deploy -Dapp.deploy.projectId=my-project-id -Djava.util.logging.config.file=src/main/resources/logging.properties

在日志中,我在服务器启动时看到如下条目:

2020-07-11 06:32:33.111:INFO::main: Logging initialized @920ms to org.eclipse.jetty.util.log.StdErrLog

在使用 Java 8 Runtime 时,我需要做什么才能获取相关日志?

标签: google-app-enginegoogle-cloud-logging

解决方案


推荐阅读