2017-06-13 48 views
1

我们只简单使用java.util.logging中的日志信息,错误等等,那么我可以通过多种方式查看这些日志:如何获取包含堆栈跟踪的bluemix日志?

  1. CF logs命令
  2. bluemix Web控制台(日志聚合器)
  3. kibana Web UI的
  4. ssh和猫/home/vcap/logs/messages.log

如果我登录的消息,它无处不显示出来。如果我记录一条消息并传递一个异常参数,那么消息在任何地方都会显示,但该异常仅显示在/home/vcap/logs/messages.log中。异常和堆栈跟踪不会显示在cf日志,bluemix控制台或kibana中。由于messages.log文件的大小有限,并且在重新执行阶段不会保留,所以我不能总是查看它以获取我需要的信息。

那么我该如何确保包括异常在内的完整日志消息被完全记录?

回答

0

默认情况下,messages.log将只包含日志记录组件写入或捕获的消息。 FFDC日志(在每个应用程序的日志目录中)应该包含完整的堆栈跟踪。见[1]和[2]为详情:

[1] https://console.bluemix.net/docs/runtimes/liberty/loggingAndTracing.html#logging_tracing

[2] https://www.ibm.com/support/knowledgecenter/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/rwlp_logging.html

+0

非常感谢,但不幸的是,日志记录组件并未将所有内容都写到发送给它的message.log中。示例: sLogger.log(Level.WARNING,“hello”,new ServletException(“This is a caught exception。”)); 这将记录“你好”,但不是来自异常的消息或堆栈。由于它是一个被捕获的异常,堆栈不会写入ffdc。 – Mike

+0

如果我不记录异常,而是让Liberty处理它,那么异常记录在messages.log中,但是每个堆栈跟踪行在Kibana(和Logs web ui)中显示为不同的条目。这使得很难找到和读取异常。我不想依赖ffdc文件来获取堆栈,因为这意味着我们不能只监视一个文件,并且在重新启动该文件夹时,它们将被删除。我期待Kibana成为读取/存储/检索日志的最佳地点,但它们格式不正确,我只知道它们只保留了7天。 – Mike

+0

有其他人找到和我一样的结果吗?是否有使用其他日志库(log4j,slf4gj等)的不同行为。我们可以使用更好的日志同步吗? – Mike

相关问题