App Engine启动&记录困境

时间:2015-12-28 23:18:00

标签: java google-app-engine logging

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

(第一个问题是我的应用程序启动时间超过30秒;我在JVM上使用Armed Bear Common Lisp(ABCL)并且我的应用程序提取了相当多的代码。我提到这个不要问寻求帮助(我没有得到“超时”例外)但是如果它与下面描述的其他问题有任何关系。)

下一个问题是我在App Engine控制台中没有看到java.util.logging.Logger日志消息(来自我的Java或Lisp代码)。我在.level=FINER文件中设置了logging.properties但我没有看到使用开发服务器看到的任何消息,只有一条INFO级消息说{{1} },发送到Startup completed in -0.001 seconds.

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

在与例外相同的日志消息中,还有文本web.xml,这必须是一个线索,但谷歌不会为此提出任何明显的线索。

我在我的应用程序中添加了一个简单的“Hello World”servlet,调用javax.servlet.ServletContext log: unavailablelog.severe()来尝试获取Google Cloud Platform Console Log Viewer(或者AppEngine Log Viewer中的任何日志消息遗产{{3}})。在运行此操作时,我没有收到log.info()消息,但我也没有收到任何日志消息。

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

1 个答案:

答案 0 :(得分:0)

好的,我已经发现了我的日志记录问题。 Oracle Java 7 docs say使用Logger.getGlobal(),但Google java-docs-samples代码使用Logger.getLogger(ClassName.class.getName())。我正在使用无声无效的前者。

如果将其记录在某处,或者文档中的任何代码片段实际使用了日志消息,那将会很好。