Scala 播放框架在未来记录所有运行时异常

Scala 播放框架在未来记录所有运行时异常,scala,exception-handling,playframework-2.0,log4j,future,Scala,Exception Handling,Playframework 2.0,Log4j,Future,我正在PlayFramework2.2中使用Scala创建应用程序,我想将所有RuntimeException保存在日志文件中 当我向代码中添加以下内容时: future.map{f=> 抛出新的NullPointerException(“坏事情发生”) } 我的日志中有任何信息。我应该如何配置log4j,以及为什么默认情况下会出现这种行为 ==更新 我可以在内部捕获此异常,但也许有更好的方法在外部捕获它: future.map{f=> 试一试{ ... 抛出新的NullPointerExce

我正在PlayFramework2.2中使用Scala创建应用程序,我想将所有RuntimeException保存在日志文件中

当我向代码中添加以下内容时:

future.map{f=>
抛出新的NullPointerException(“坏事情发生”)
}

我的日志中有任何信息。我应该如何配置log4j,以及为什么默认情况下会出现这种行为

==更新

我可以在内部捕获此异常,但也许有更好的方法在外部捕获它:

future.map{f=>
试一试{
...
抛出新的NullPointerException(“坏事情发生”)
}抓住{
案例e:RuntimeException=>
...
}
}

不要使用
try catch
您可以调用
future
recover
方法,并在那里打印堆栈跟踪:

future.map { f =>
    throw new NullPointerException("bad things happen")
}.recover { case ex => ex.printStackTrace() }

需要明确的是:您正在寻找一种方法,将log4j配置为记录所有发生的RuntimeException,而无需从代码中调用log4j?是的,但在Scala Futures内部,当我在普通线程中的RuntimeException超出Future时,我在控制台中也会遇到这样的错误。