【问题标题】:Google App Engine - log messages not visibleGoogle App Engine - 日志消息不可见
【发布时间】:2019-02-11 03:43:05
【问题描述】:

我有一个 Spring Boot 应用程序部署到 GCP App Engine,并使用 logback 作为日志记录框架。我面临的问题是我找不到放入代码中的记录器消息。我发现了一个类似的帖子:Google App Engine - Can not find my logging messages。但它已经很老了,解决方案不再起作用了。在这篇文章中,提到了手动设置记录器级别。在类似的行中,我使用logging.properties 文件将级别设置为 INFO。但是,还是没有用。

我认为问题可能出在 App Engine 上的文件权限上。因此,我在 /tmp 指定了日志文件位置,具有完全的读写权限。它不起作用。如果存在任何异常情况,则 Stackdriver Logging 上会显示堆栈跟踪。请建议。

【问题讨论】:

    标签: java google-app-engine logging google-cloud-platform


    【解决方案1】:

    这是我设法使日志显示在 Stackdriver 中 java.log 下的方法。

    我创建了一个文件myApp/src/main/resources/logback.xml 并添加了这个配置:

    <configuration>
      <appender name="STDOUT" class="com.google.cloud.logging.logback.LoggingAppender">
      </appender>
    
      <root level="info">
              <appender-ref ref="STDOUT"/>    
      </root>
    </configuration>
    

    我还在文件myApp/pom.xml中添加了依赖:

    <dependencies>
    
        <dependency>
          <groupId>com.google.cloud</groupId>
          <artifactId>google-cloud-logging-logback</artifactId>
          <version>0.80.0-alpha</version>
        </dependency>
    
        <!-- other dependencies -->
    
    </dependencies>
    

    然后在我的main.java 中,我做了logger.info("my info log")logger.error("my error log"),在访问我的网络应用几秒钟后,日志出现在 Stackdriver 中。

    我从GoogleCloudPlatform/getting-started-java 存储库中获取示例代码来部署我的应用程序。

    【讨论】:

    • 这似乎是完美的解决方案!根据您的输入,我提到了github.com/GoogleCloudPlatform/java-docs-samples/tree/master/…,其中提到了如何指定日志文件名。但是,问题是我不确定在哪里可以找到日志文件。你能推荐我吗?
    • 当然 :) 从 Google Cloud Platform Console 到 Stackdriver Logging,在第一个下拉菜单中选择 GAE Application -> 并在第二个下拉菜单中选择“java.log ”。请注意,仅当您已记录消息并且未更改附加程序中 标记中的默认选项(即“java.log”)时,才会出现此选项。
    • 这是完美的解决方案!谢谢你帮助我! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    相关资源
    最近更新 更多