最终让我的“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: unavailable
和log.severe()
来尝试获取Google Cloud Platform Console Log Viewer(或者AppEngine Log Viewer中的任何日志消息遗产{{3}})。在运行此操作时,我没有收到log.info()
消息,但我也没有收到任何日志消息。
我不禁感到我错过了一些明显的东西。人们在哪里可以在Google Cloud Platform Console中查看他们的Java日志消息?
答案 0 :(得分:0)
好的,我已经发现了我的日志记录问题。 Oracle Java 7 docs say使用Logger.getGlobal()
,但Google java-docs-samples
代码使用Logger.getLogger(ClassName.class.getName())
。我正在使用无声无效的前者。
如果将其记录在某处,或者文档中的任何代码片段实际使用了日志消息,那将会很好。