播放框架堆栈跟踪日志记录和日志配置

时间:2015-03-05 15:17:17

标签: scala logging playframework

使用Play框架的默认记录器,我得到完整的例外情况'在play的应用程序日志中堆栈跟踪,并在控制台中显示相同堆栈跟踪的缩写版本。关于日志记录,我有三个基本问题:

  1. 在一个案例中,我觉得可能会遗漏一些信息。像... 3 common frames omitted这样的东西实际上意味着什么,我能以某种方式配置以查看那些被省略的框架吗?

  2. 如何控制控制台是否显示完整的堆栈跟踪vs.部分一个v.s.只是一些没有堆栈跟踪的异常标题?

  3. 我可以用以下任何一个替换默认记录器,还是应该仅将这些记录器用于我自己的日志记录,但保持框架日志记录不变?将切换到那些记录器打破游戏的非阻塞性质? scala-logginglog4szero-log

  4. 希望有了您的答案,我可以更专注于我的应用程序,而不是更多地关注日志记录基础架构,所以提前感谢!

1 个答案:

答案 0 :(得分:3)

  1. Logback(就像JRE一样)在打印堆栈跟踪时省略了常见的帧。请参阅JRE description of how frames are elided

  2. Play使用Logback。您可以更改配置。请查看logback layout docsPlay logging configuration docs。特别要注意xException设置。

  3. 如果需要,您可以尝试使用TypeSafe的scala-logging框架。如果它与Logback或slf4j集成,那么它可能很适合Play。默认情况下,Play不使用Logback的异步appender(虽然可能应该这样做?)因此无需担心阻塞或非阻塞问题。