java - App Engine 启动和日志记录问题

标签 java google-app-engine logging

最终让我的“Hello World”网络应用程序在 App Engine 开发服务器中运行后,我将其上传到云端,但立即遇到了问题。

(第一个问题是我的应用程序启动时间超过 30 秒;我在 JVM 上使用 Armed Bear Common Lisp (ABCL),并且我的应用程序提取了大量代码。我提到这一点并不是为了寻求帮助(并且我没有收到“超时”异常),而是以防万一它与下面描述的其他问题有任何关系。)

下一个问题是我看不到我的 java.util.logging.Logger在 App Engine 控制台中记录消息(来 self 的 Java 或 Lisp 代码)。我设置了.level=FINER在我的logging.properties文件,但除了单个 INFO 之外,我没有看到使用开发服务器看到的任何消息。级消息说 Startup completed in -0.001 seconds. ,发送至stdout .

我看到的另一条消息是我的代码中的一个异常,这表明 servlet 的 init方法尚未被调用或无法读取 context-param来自 web.xml 的值文件(通过 GenericServlet.getInitParameter() )。我添加了<load-on-startup>1</load-on-startup>给我的web.xml文件但这没有帮助。我想知道我是否应该使用 system-properties在我的appengine-web.xml文件而不是 context-param web.xml 中的元素。 (我现在正在检查两者,但没有明显效果。)但如果我有日志消息,我可以对此进行调试。

在与异常相同的日志消息中,还有文本 javax.servlet.ServletContext log: unavailable这一定是一个线索,但谷歌并没有为此提供任何明显的线索。

我在我的应用程序中添加了一个非常简单的“Hello World”servlet,它调用 log.severe()log.info()尝试让任何日志消息出现在 Google Cloud Platform Console Log Viewer 中(或遗留 AppEngine Log Viewer )。运行此程序时,我没有得到 log: unavailable消息,但我也没有收到任何日志消息。

我情不自禁地感觉自己错过了一些明显的东西。人们在 Google Cloud Platform Console 中哪里可以查看 Java 日志消息?

最佳答案

好的,我已经解决了我的日志记录问题。 Oracle Java 7 docs say使用 Logger.getGlobal(),但 Google java-docs-samples 代码使用 Logger.getLogger(ClassName.class.getName())。我使用的是前者,它会默默地失败。

如果这在某个地方有记录,或者文档中的任何代码片段实际上使用了日志消息,那就太好了。

关于java - App Engine 启动和日志记录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34502237/

相关文章:

java - 在 HashSet 中搜索

Java 8 默认方法接口(interface)覆盖对象等于方法

java - android java中两个函数之间的 sleep ?

java - 如何使用 Maven 部署多个应用程序引擎实例?

java - 在日志文件中以表格格式打印 hashmap 中的数据

java - Android OpenGLES 致命异常 : GLThread 10

python - 从 AppEngine 上的 Python 开始

google-app-engine - App Engine 转到 : How to kill a running goroutine

git - 将 GIT LOG 导出到 Excel 文件

java - Log4j:日志文件正确,但 Stdout 仅显示一个子集